log4j关键点
日志级别
级别顺序(低到高):DEBUG<INFO<WARN<ERROR<FATAL
显示台显示的内容是:大于等于log4j.properties中配置的信息。
设置log4j日志缓冲打印
如下图,当日志大于8192byte才打印,且每小时产生一个日志。但这里有个问题:如果应用重启或宕机,最后不足8K(约50条)的日志会丢失。
<appendername="UNIFIEDLIMIT-QUERY-DIGEST-APPENDER"class="com.alibaba.common.logging.spi.log4j.DailyRollingFileAppender">
<paramname="file"value="${loggingRoot}/${sys_host_name}/unifiedlimit-query-digest.log"/>
<paramname="append"value="true"/>
<paramname="encoding"value="GBK"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%d%m%n"/>
</layout>
<paramname="datePattern"value=".yyyy-MM-dd_HH"/>
<paramname="bufferedIO"value="true"/>
<paramname="bufferSize"value="8192"/>
</appender>
输出日志格式形如下:
prodtrans-query-digest.log.2014-05-25_16
分包输出日志:
<appendername="MYPROJECT-COMMON-APPENDER"
class="com.alibaba.common.logging.spi.log4j.DailyRollingFileAppender">
<paramname="file"
value="${loggingRoot}/${sys_host_name}/myproject-common.14dt.log"/>
<paramname="append"value="true"/>
<paramname="encoding"value="UTF-8"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"
value="%d%-5p%c{2}-[%X{sofaInvokeId},%X{loadTestFlag},,,]%m-[%X{requestType},%X{requestSource},%X{requestId},%X{compositeId},%X{atomId}]%n"/>
</layout>
</appender>
<loggername="com.aaa.bbb.common"additivity="false">
<levelvalue="${myproject_loggingLevel_info}"/>
<appender-refref="MYPROJECT"/>
<appender-refref="ERROR-APPENDER"/>
</logger>
则所有com.aaa.bbb.common包下的类用如下写法会输出到文件myproject-common.14dt.log