日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。:
1.static Level DEBUG :
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
2.static Level INFO
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
3.static Level WARN
WARN level表明会出现潜在错误的情形。
4.static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
5.static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
另外,还有两个可用的特别的日志记录级别:
1.static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
2.static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
日志记录器(Logger)的行为是分等级的:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过在这里定义的
级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。
优先级高的将被打印出来。项目上生产环境时候一定得把debug的日志级别重新调为warn或者更高,避免产生大量日志。
常用设置
#定义DEBUG优先级,R为日志输出目的的
log4j.rootLogger=debug,file
#设置日志输出类型,为文件类型
#log4j.appender.file=org.apache.log4j.FileAppender
#设置日志输出类型,每天一个文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#在每天产生的文件后面追加
log4j.appender.file.DatePattern = '.'yyyyMMdd
#设置日志文件名 /home/weblogic/oneboss/0068_stat.log
log4j.appender.file.file=/home/weblogic/oneboss/0068_stat.log
#每次在文件尾写入新的日志信息
log4j.appender.file.Append=true
#日志输出信息格式类型
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#日志输出信息格式为 换行、日期、优先级、[类名]、日志信息、换行 ==%n%d[%c]-%m%n %m%n
log4j.appender.file.layout.ConversionPattern=%m%n
#设置输出日志文件编码(可以控制乱码情况)
log4j.appender.file.encoding=UTF-8
private static Logger logger = Logger.getLogger(类名.class);
log4j.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="ImmediateFlush" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%p], [%d{yyyy/MMM/dd HH:mm:ss,SSS}], [%c.%M:%L], [%m], [%t]%n" />
</layout>
</appender>
<!-- 设置日志文件每天只创建一个 -->
<appender name="TRADE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="log/log.log" />
<param name="ImmediateFlush" value="true" />
<param name="datePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%p], [%d{yyyy/MMM/dd HH:mm:ss,SSS}], [%c.%M:%L], [%m], [%t]%n" />
</layout>
</appender>
<root>
<!-- 设置日志等级 -->
<level value="INFO" />
<appender-ref ref="TRADE" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>