概述
log4j.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration>
<!--输出到控制台-->
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%t|${PORT}|${APPNAME}| %l|%M|%p|%m%n"/>
</layout>
</appender>
<!--输出到文件(info)-->
<!--将生成“info.log.2014-06-11”这样的日志文件-->
<appender name="fileAppenderInfo" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.base}/logs/info.log" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%t|${PORT}|${APPNAME}|%l|%M|%p|%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<!--输出到文件(warn)-->
<appender name="fileAppenderWarn" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.base}/logs/warn.log" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%t|${PORT}|${APPNAME}|%l|%M|%p|%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<!--输出到文件(error)-->
<appender name="fileAppenderError" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.base}/logs/error.log" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%t|${PORT}|${APPNAME}|%l|%M|%p|%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<!--屏蔽所有org.springframework.*输出的Debug(及以下)信息-->
<logger name="org.springframework">
<level value="WARN"></level>
</logger>
<!--屏蔽所有org.mybatis.*输出的Debug(及以下)信息-->
<logger name="org.mybatis">
<level value="WARN"></level>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppenderInfo" />
<appender-ref ref="fileAppenderWarn" />
<appender-ref ref="fileAppenderError" />
</root>
</log4j:configuration>
Appender日志输出器:接口,配置日志的打印级别、打印位置、打印格式等
log4j中WriterAppender类继承了抽象类AppenderSkeleton,而AppenderSkeleton抽象类又实现了Appender接口
WriterAppender:将日志信息以流格式发送到任意指定的地方
一般在log4j中实现的WriterAppender的主要用到的类包括:
1.org.apache.log4j.ConsoleAppender(日志输出到控制台)
2.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
3.org.apache.log4j.FileAppender(文件)
<!-- 输出日志到文件 -->
<appender name="fileAppender" class="org.apache.log4j.FileAppender">
<!-- 输出文件全路径名-->
<param name="File" value="/data/applogs/own/fileAppender.log"/>
<!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
<param name="Append" value="false"/>
<param name="Threshold" value="INFO"/>
<!--是否启用缓存,默认false-->
<param name="BufferedIO" value="false"/>
<!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K -->
<param name="BufferSize" value="512"/>
<!-- 日志输出格式 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n"/>
</layout>
</appender>
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
<!-- 输出日志到文件,当文件大小达到一定阈值时,自动备份 --><!-- FileAppender子类 -->
<appender name="rollingAppender" class="org.apache.log4j.RollingFileAppender">
<!-- 日志文件全路径名 -->
<param name="File" value="/data/applogs/RollingFileAppender.log" />
<!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
<param name="Append" value="true" />
<!-- 保存备份日志的最大个数,默认值是:1 -->
<param name="MaxBackupIndex" value="10" />
<!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB,默认值是:10MB -->
<param name="MaxFileSize" value="10KB" />
<!-- 设置日志输出的样式 -->`
<layout class="org.apache.log4j.PatternLayout">
<!-- 日志输出格式 -->
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
</layout>
</appender>
5.org.apache.log4j.WriterAppender(可自定义日志输出位置、格式)
日志输出配置类后必选注意将配置好的name,添加到<root></root>
标签内
<root>
<level value="INFO"/>
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppenderInfo" />
<appender-ref ref="fileAppenderWarn" />
<appender-ref ref="fileAppenderError" />
<appender-ref ref="rollingAppender" />
</root>
日志级别:
日志记录器(Logger)的行为是分等级的。分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。
注:日志记录的级别有继承性,子类会记录父类的所有的日志级别。
输出格式:
log4j输出格式可以自定义配置org.apache.log4j.PatternLayout类,其中各个参数的代表含义如下:
eg:
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MMM-dd HH:mm:ss.SSS}
%t: 输出产生该日志事件的线程名
%r: 程序启动到现在的毫秒数
%p: 日志级别(FATAL,ERROR,WARN,INFO,DEBUG)
%F: java 源文件名
%L: java 源码行数
%C/%c: java 类名,%C{1} 输出最后一个元素
%M:java 方法名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数
%m:输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
xml配置:
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="|%d{yyyy-MM-dd HH:mm:ss.SSS}|%t|${PORT}|${APPNAME}|%logger|%M|%p|%m%n"/>
</layout>
代码:
log.info("转换任务启动,开始执行...");
控制台输出:
|2019-08-26 14:35:30.003|processTaskThread||| com.dhcc.datatrans.TaskProcess.processTask(TaskProcess.java:28)|processTask|INFO|转换任务启动,开始执行...
分析结果:
%d: 输出日志时间点的日期或时间:2019-08-26 14:35:30.003
%t: 输出产生该日志事件的线程名:processTaskThread
%p: 输出日志级别:INFO
%M:输出java 方法名:processTask
%l: 输出日志事件的发生位置:com.dhcc.datatrans.TaskProcess.processTask(TaskProcess.java:28)
%m:输出代码中指定的消息:转换任务启动,开始执行...
%n: 输出一个回车换行符
文章参考原博客:https://blog.csdn.net/niuch1029291561/article/details/80938095
最后
以上就是大意衬衫为你收集整理的log4jxml配置的全部内容,希望文章能够帮你解决log4jxml配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复