一.Logger日志介绍
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4j API (http://jakarta.apache.org/log4j/docs/api/index.html):
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
另外,还有两个可用的特别的日志记录级别: (以下描述来自log4j APIhttp://jakarta.apache.org/log4j/docs/api/index.html):
static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
日志记录器(Logger)的行为是分等级的。如下表所示:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来,也是说大于等于的级别的日志才输出。
日志记录的级别有继承性,子类会记录父类的所有的日志级别。
二.logger日志设置:
1、加包:log4j-1.2.16.jar 一般还会加入 commons-logging-1.1.1.jar
2、在CLASSPATH 下建立log4j.properties
三.配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <!-- 业务日志,生产环境使用 --> <appender name="FILE_LOG" class="org.apache.log4j.DailyRollingFileAppender"> <param name="encoding" value="utf-8"/> <param name="Threshold" value="ERROR"/> <param name="File" value="/logs/web/appstore/error.log" /> <param name="DatePattern" value="'_'yyyy-MM-dd" /> <param name="Append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%x] %t [%-5p] (%F,%L) - %m%n" /> </layout> </appender> <appender name="FILE_TIME_LOG" class="org.apache.log4j.DailyRollingFileAppender"> <param name="encoding" value="utf-8"/> <param name="Threshold" value="DEBUG"/> <param name="File" value="/logs/web/appstore/appstore.log" /> <param name="DatePattern" value="'_'yyyy-MM-dd" /> <param name="Append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%x] %t [%-5p] (%F,%L) - %m%n" /> </layout> </appender> <!-- 控制台日志,开发阶段使用--> <!-- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <param name="Threshold" value="DEBUG"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%x] %t [%-5p](%c %F,%L) - %m%n" /> </layout> </appender> --> <!-- 默认的异步文件日志输出,生产环境都采用此appender --> <appender name="ASYNC_FILE_TIME_LOG" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="256"/> <param name="LocationInfo" value="true"/> <appender-ref ref="FILE_TIME_LOG"/> </appender> <!-- 默认的异步文件日志输出,生产环境都采用此appender --> <appender name="ASYNC_FILE_LOG" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="256"/> <param name="LocationInfo" value="true"/> <appender-ref ref="FILE_LOG"/> </appender> <!-- console 异步日志,开发环境都使用此appender,方便调试 --> <!-- <appender name="ASYNC_CONSOLE" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="64"/> <param name="LocationInfo" value="true"/> <appender-ref ref="CONSOLE"/> </appender> --> <!-- 日志打印sql --> <!-- <category name="org.hibernate.SQL"> --> <!-- <param name="additivity" value="false"/> --> <!-- <priority value="DEBUG" /> --> <!-- <appender-ref ref="ASYNC_FILE_TIME_LOG" /> --> <!-- </category> --> <category name="com.newland"> <param name="additivity" value="false"/> <priority value="DEBUG" /> <!-- <appender-ref ref="ASYNC_CONSOLE" /> --> <appender-ref ref="ASYNC_FILE_LOG" /> <!-- 引用日志模板 --> <appender-ref ref="ASYNC_FILE_TIME_LOG" /> </category> <category name="org.ohuyo.libra"> <param name="additivity" value="false"/> <priority value="DEBUG" /> <!-- <appender-ref ref="ASYNC_CONSOLE" /> --> <appender-ref ref="ASYNC_FILE_LOG" /> <!-- 引用日志模板 --> <appender-ref ref="ASYNC_FILE_TIME_LOG" /> </category> <category name="org.apache.struts2"> <param name="additivity" value="false"/> <priority value="INFO" /> <!-- <appender-ref ref="ASYNC_CONSOLE" /> --> <appender-ref ref="ASYNC_FILE_LOG" /> <!-- 引用日志模板 --> <appender-ref ref="ASYNC_FILE_TIME_LOG" /> </category> <root> <priority value="INFO" /> <!-- <appender-ref ref="ASYNC_CONSOLE" /> --> <appender-ref ref="ASYNC_FILE_LOG" /> <!-- 引用日志模板 --> <appender-ref ref="ASYNC_FILE_TIME_LOG" /> </root> </log4j:configuration>