最近做的项目要输出标准化日志,查了下使用log4j比较好用,记录一下,使用很简单,需要下载并导入log4j的jar包,官网有,按需下载:下载地址
import org.apache.log4j.Logger;
public class Testlinux {
public static Logger logger= Logger.getLogger(Testlinux.class);
public static void main(String[] args) {
logger.trace("trace_log");
logger.debug("debug_log");
logger.info("info_Log");
logger.warn("warn_log");
logger.error("error_log");
logger.fatal("fatal_log");
}
}
直接运行会报错:No appenders could be found for logger,原因为找不到默认配置文件log4j.properties和log4j.xml,并且应用程序不执行显式配置时,就会发生这种情况。
自建一个log4j.properties,填入下面信息
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=D://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=D://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D://logs/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 ] %m%n
之后就可以成功输出,并将日志写入到properties里配置的文件目录下了,将原来的System.out地方进行替换即可