Published on

log4j java日志使用

Authors
log4j:WARN No appenders could be found for logger 

每次运行程序都报这个警告,很不爽。看名字就知道是日志作用,java在这方面管的真宽。。 java代码越写越多,是有用这个的必要了。

1.新建一个log4j.properties文件

我是用maven生成的目录结构,放在/src/main/resources 下。

2.配置该文件
#设置logger级别DEBUG、INFO、WRNING、ERROR和输出格式A、B、C或D
log4j.rootLogger=INFO, A

#输出到控制台
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%F,%L]-[%p] %m%n

在代码中加入 PropertyConfigurator.configure("src/resources/log4j.properties"); 设置配置路径

3.每个类都要写Getlogger(object.class) 麻烦

网上搜了一圈,写得非常复杂。。。其实很简单 还是用Log4j库 maven中加入

<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>RELEASE</version>
    </dependency>

代码中加入

import lombok.extern.log4j.Log4j; //加入这个包

//类加上注解
@Log4j
public class Sample(){
//直接在代码中用log
       log.info("print....");
}

IDEA不提示log,安装插件Lombok 完成。

吐槽

本来想自己实现一个log,类似C语言,封装一下printf, 利用__FILE__, LINE,实现一个全局log。 java居然办不到。。真的很不适应。

不知为什么log4j不会自动加载这个配置,每次都要手写,在不同的项目中,就要手动加载,非常麻烦。准备用logback试试

相关链接

log4j详解