日志格式配置
###日志配置方式
1.log4j.properties
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] %p [%c{3}::%M(%L)] - %m%n
#log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %-5level [%c{2}::%M(%L)] - %msg%n
#log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %-5level [%c{2}::%M(%L)] - %msg%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = log/info.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] %p [%c{3}::%M(%L)] - %m%n
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %-5level [%c{2}::%M(%L)] - %msg%n
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =log/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = error
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] %p [%c{3}::%M(%L)] - %m%n
#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %-5level [%c{2}::%M(%L)] - %msg%n
2.配置方式2
<?xml version="1.0" encoding="utf-8"?>
<!--log4j内部日志级别-->
<configuration status="info">
<properties>
<property name="log_home">log</property>
<!--<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%l] - %msg%n</property>-->
<!--<property name="log_pattern">%5p [%t] %d{yy-MM-dd HH:mm:ss} %c{1} (line %L) - %m%n</property>-->
<!--<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%l] - %msg%n</property>-->
<!--<property name="log_pattern">%5p [%t] %d{yy-MM-dd HH:mm:ss} %c{1} (line %L) - %m%n</property>-->
<!--<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%c{3}::%M(%L)] - %msg%n</property>-->
<!--<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss} [%t:%r] %-5level [%c{3}::%M(%L)] - %msg%n</property>-->
<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%c{2}::%M(%L)] - %msg%n</property>
</properties>
<appenders>
<!--控制台-->
<console name="stdout">
<thresholdfilter level="info" onmatch="accept" onmismatch="deny"/>
<patternlayout pattern="${log_pattern}" charset="utf-8"/>
</console>
<!--文件-->
<rollingrandomaccessfile name="info" filename="${log_home}/info.log" filepattern="${log_home}/info.%d{yyyy-mm-dd}.log">
<thresholdfilter level="info" onmatch="accept" onmismatch="deny"/>
<patternlayout pattern="${log_pattern}" charset="utf-8"/>
<timebasedtriggeringpolicy interval="24"/>
<defaultrolloverstrategy max="1">
<delete basepath="${log_home}" maxdepth="2">
<iffilename glob="*info.*.log"/>
<iflastmodified age="24h"/>
</delete>
</defaultrolloverstrategy>
</rollingrandomaccessfile>
<rollingrandomaccessfile name="warn" filename="${log_home}/warn.log" filepattern="${log_home}/warn.%d{yyyy-mm-dd}.log">
<thresholdfilter level="warn" onmatch="accept" onmismatch="deny"/>
<patternlayout pattern="${log_pattern}" charset="utf-8"/>
<timebasedtriggeringpolicy interval="24"/>
<defaultrolloverstrategy max="1">
<delete basepath="${log_home}" maxdepth="2">
<iffilename glob="*warn.*.log"/>
<iflastmodified age="24h"/>
</delete>
</defaultrolloverstrategy>
</rollingrandomaccessfile>
<rollingrandomaccessfile name="error" filename="${log_home}/error.log" filepattern="${log_home}/error.%d{yyyy-mm-dd}.log">
<thresholdfilter level="error" onmatch="accept" onmismatch="deny"/>
<patternlayout pattern="${log_pattern}" charset="utf-8"/>
<timebasedtriggeringpolicy interval="24"/>
<defaultrolloverstrategy max="1">
<delete basepath="${log_home}" maxdepth="2">
<iffilename glob="*error.*.log"/>
<iflastmodified age="24h"/>
</delete>
</defaultrolloverstrategy>
</rollingrandomaccessfile>
</appenders>
<loggers>
<asynclogger name="org.springframework" level="off"/>
<asynclogger name="com.alibaba.druid" level="off"/>
<asynclogger name="druid.sql.Statement" level="debug" additivity="false"/>
<asyncroot level="info" includelocation="true">
<appenderref ref="stdout"/>
<appenderref ref="info"/>
<appenderref ref="warn"/>
<appenderref ref="error"/>
</asyncroot>
</loggers>
</configuration>
来源:https://blog.csdn.net/godlovebinlee/article/details/100996912