log4j是一个强大的日志记录工具,每次用的时候都不记得配置应该怎么写,记录在这里,以后要用的时候就可以直接拿了,log4j有很多功能,我相信大部分用log4j的只需要打印到控制台跟按日期输出日志就行了。
log4j.properties:
log4j.rootLogger=info, stdout, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %p [%t] (%F\:%L) - %m%n # file log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=./logs/log log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log ' log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=\=%d{MM-dd HH:mm:ss} %p [%t] (%F\:%L) - %m%n
或者也可以将info跟error分开,分别放在两个不同的文件里,这样在类中就需要两个Logger了
log4j.rootLogger=debug, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %p [%t] (%F\:%L) - %m%n #infofile log4j.logger.infofile = info,infofile log4j.appender.infofile.Append=true log4j.appender.infofile =org.apache.log4j.DailyRollingFileAppender log4j.appender.infofile.layout=org.apache.log4j.PatternLayout log4j.appender.infofile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %p [%t] (%F\:%L) - %m%n log4j.appender.infofile.File=./logs/info.log log4j.appender.infofile.DatePattern='.'yyyy-MM-dd'.log' #errorfile log4j.logger.errorfile = error,errorfile log4j.appender.errorfile.Append=true log4j.appender.errorfile =org.apache.log4j.DailyRollingFileAppender log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout log4j.appender.errorfile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %p [%t] (%F\:%L) - %m%n log4j.appender.errorfile.File=./logs/error.log log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd'.log'
logback配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 --> <!-- 如需自定义关键字,用 %mdc{键名} 表示,程序中用MDC.put("键名","键值")设置,可动态设置 [%logger:%line] --> <Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] -%mdc{client} %msg%n</Pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>log/log.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>log/log.%d{yyyy-MM-dd}.log</FileNamePattern> </rollingPolicy> <encoder> <!-- %-40(%-35logger{35}:%-4line) --> <Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] -%mdc{client} %msg%n</Pattern> </encoder> </appender> <!-- <logger name="xxx.xxx.Test" level="INFO" /> <logger name="xxx.xxx.Test" level="WARN" /> <logger name="xxx.xxx.Test" level="DEBUG" /> <logger name="xxx.xxx.Test" level="INFO" /> <logger name="xxx.xxx.Test" level="DEBUG" /> --> <root level="TRACE"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration>