Log4j分级别记录日志文件

简介: Log4j分级别记录日志文件            在记录日志的时候通常我们都希望不同级别的日志能够分别记录在不同的日志文件中,然后有一个汇总的日志文件记录所有的日志信息,因为在大多数情况下我们可能只会关注那些Error级别的日志信息。

Log4j分级别记录日志文件

 

         在记录日志的时候通常我们都希望不同级别的日志能够分别记录在不同的日志文件中,然后有一个汇总的日志文件记录所有的日志信息,因为在大多数情况下我们可能只会关注那些Error级别的日志信息。利用log4j去记录这些信息是比较简单的,我们可以配置多个不同的appender,然后每个appender对应的threshold指定需要过滤的不同级别。Appenderthreshold属性默认是为空的,即表示不过滤掉任何级别的日志信息,也就是记录所有级别的日志信息。该属性值如果设为ERROR,则表示只记录ERROR级别以上的日志信息,对于ERROR以下级别的日志信息,如DEBUGINFO等将会忽略。所以如果我们需要按照日志信息级别的不同记录不同的日志文件,我们可以这样设置log4j.properties文件。

#指定默认情况下的日志输出级别为INFO,对应的appenderstdoutinfowarnerrorfatal

log4j.rootLogger=INFO,stdout,info,warn,error,fatal

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

 

log4j.appender.info=org.apache.log4j.DailyRollingFileAppender

log4j.appender.info.layout=org.apache.log4j.PatternLayout

log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.info.threshold=INFO

log4j.appender.info.Encoding=UTF-8

log4j.appender.info.File=app.info.log

 

log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender

log4j.appender.warn.layout=org.apache.log4j.PatternLayout

log4j.appender.warn.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.warn.threshold=WARN

log4j.appender.warn.Encoding=UTF-8

log4j.appender.warn.File=app.warn.log

 

log4j.appender.error=org.apache.log4j.DailyRollingFileAppender

log4j.appender.error.layout=org.apache.log4j.PatternLayout

log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.error.threshold=ERROR

log4j.appender.error.Encoding=UTF-8

log4j.appender.error.File=app.error.log

 

log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender

log4j.appender.fatal.layout=org.apache.log4j.PatternLayout

log4j.appender.fatal.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.fatal.threshold=FATAL

log4j.appender.fatal.Encoding=UTF-8

log4j.appender.fatal.File=app.fatal.log

 

   在上述配置中log4j.rootLogger是用来指定默认情况下的日志输出级别以及对应的appender的,其值是类似这样的格式:

   <日志输出级别>,<appender1>[,appender2[,append3…]]

 

         Appender中如果指定了对应的日志输出级别则会覆盖rootLogger的配置。像上面的配置对于info那个appender其日志输出级别就是info,哪怕rootLogger的默认日志输出级别改为ERROR,名称为infoappender仍然会记录INFO级别的日志信息。

 

         如果我们希望将com.app.package包下面的所有INFO级别以上的日志都记录在app.package.log文件中,那么我们就可以这样来配置。

 

log4j.logger.com.app.package=INFO,test

 

log4j.appender.test=org.apache.log4j.DailyRollingFileAppender  

log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.test.Encoding=UTF-8

log4j.appender.test.File=app.package.log

 

(注:本文是基于log4j1.2.17所写)

 

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
23天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
77 1
|
24天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
78 1
|
3天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
13 0
|
6天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。
|
15天前
|
运维 安全 Ubuntu
`/var/log/syslog` 和 `/var/log/messages` 日志详解
`/var/log/syslog` 和 `/var/log/messages` 是Linux系统的日志文件,分别在Debian和Red Hat系发行版中记录系统事件和错误。它们包含时间戳、日志级别、PID及消息内容,由`rsyslog`等守护进程管理。常用命令如`tail`和`grep`用于查看和搜索日志。日志级别从低到高包括`debug`到`emerg`,表示不同严重程度的信息。注意保护日志文件的安全,防止未授权访问,并定期使用`logrotate`进行文件轮转以管理磁盘空间。
21 1
|
16天前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
29 2
|
17天前
|
Ubuntu Linux 网络安全
/var/log/auth.log日志详解
`/var/log/auth.log`是Linux(尤其是Debian系如Ubuntu)记录身份验证和授权事件的日志文件,包括登录尝试(成功或失败)、SSH活动、sudo使用和PAM模块的操作。登录失败、SSH连接、sudo命令及其它认证活动都会在此记录。查看此日志通常需root权限,可使用`tail`、`less`或`grep`命令。文件内容可能因发行版和配置而异。例如,`sudo tail /var/log/auth.log`显示最后几行,`sudo grep &quot;failed password&quot; /var/log/auth.log`搜索失败密码尝试。
70 8
|
28天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
51 0
|
1月前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
44 0