- layout 的 conversion patterns的参数说明:
- %r : 程序从开始之后跑的时间
- %t : 发出日志请求的线程
- %-10p : 日志level,”-“号为向左对齐,10为显示的长度
- %c : logger的名字,通常就是所在类的全名,后面加上{2}可指定只输出的全名的最后两个
- %m : 日志信息
- %n : 换行
- %d : 日期
- %l : 位置
- %L: 输出代码中的行号
- %X{variableName} : 输出和当前线程相关联的NDC(嵌套诊断环境),{指定变量名输出}
- %.30c : 指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格
- %20.30c : 如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉
- log4j的Appender类型:
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender : 控制台
- DailyRollingFileAppender : 每天产生一个日志文件
- ExternallyRolledFileAppender
- FileAppender : 文件
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender : 文件大小到达指定尺寸的时候产生一个新的文件
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppende :将日志信息以流格式发送到任意指定的地方
- log4j的layout类型
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
xml配置模板
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} %-6p%c:%L %x - %m%n" />
</layout>
</appender>
<appender name="error" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D://logs//error.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="threshold" value="error"/>
<param name="append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-6p%c:%L - %m%n" />
</layout>
</appender>
<appender name="logic" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D://logs//logic.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="threshold" value="info"/>
<param name="append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-6p%c:%L - %m%n" />
</layout>
</appender>
<appender name="trace" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D://logs//trace.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="threshold" value="info"/>
<param name="append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] - %X{mchId} - %X{mchName} - %X{siteName} - %X{sessionId} - %X{cityId} - %X{userName} - %X{mobile} - %m%n" />
</layout>
</appender>
<logger name="traceLog" additivity="false">
<level value="info" />
<appender-ref ref="trace" />
</logger>
<root>
<level value="info" />
<appender-ref ref="console"/>
<appender-ref ref="logic" />
<appender-ref ref="error" />
</root>
</log4j:configuration>