Java:Log4j

日志是在开发过程中不可缺少的功能。
这里使用了Apache的Log4j作为记录日志的功能。

这里使用了gradle构建工具,gradle地址为:

compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'

这里使用了IntelliJ IDEA作为IDE,不同IDE之间开发还是有区别的。IntelliJ IDEA确实比其他Java IDE要优秀很多。我们先看看项目结构
这里写图片描述
一定需要新建一个资源文件名。这里的名字叫做resources(名字可以随意取,只是一般来说都会叫做这个名字)。因为只有设置为资源文件,才会和java编译的class文件一起output。
文件的名字也一定要是log4j.properties。因为Logger会主动的去加载这个文件。

先看看log4j.properties。

log4j.rootLogger=DEBUG, stdout, FILE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=log.txt
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

这里配置了两种日志输出,一种是DEBUG,还有一种是STDOUT(控制台)。
日志的配置也很简单。就不细说了。

public class MainClass {

  private static Logger logger = Logger.getLogger(MainClass.class);

  public static void main(String[] args) {
    logger.debug("This is debug message.");
    logger.info("This is info message.");
    logger.error("This is error message.");
  }
}

编写好了主函数,接着我们就直接运行吧。
控制台输出

[2017-06-22 09:23:30 上午]:DEBUG com.log.MainClass.main(MainClass.java:10)This is debug message.
[2017-06-22 09:23:30 上午]:INFO com.log.MainClass.main(MainClass.java:11)This is info message.
[2017-06-22 09:23:30 上午]:ERROR com.log.MainClass.main(MainClass.java:12)This is error message.

同时也会新建一个叫做log.txt(log4j.properties配置出来的)的文件的。

This is debug message.
This is info message.
This is error message.

可以看出文件输出和控制台输出是不一样的。这是因为log4j.properties文件配置的log4j.appender.stdout.layout.ConversionPattern是不一样的。

log4j还有更多的配置功能,基本上只需要查看文档即可,所以说还是比较简单的。

如果运行程序出现

log4j:WARN No appenders could be found for logger *****.
log4j:WARN Please initialize the log4j system properly.

那么首先需要查看log4j.properties这个文件是否存在。再看看这个文件是否和class文件一起编译output了。
这里写图片描述
如果一起output了,那么再查看下log4j.properties 这个文件是否为每个rootLogger写了appender。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值