首页 > 技术文章 > log4j Logger 使用简介

jason-dong 2018-08-26 23:54 原文

项目结构:

log4j.properties 内容:

log4j.rootCategory=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyy MMM dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) : %m%n

maven 依赖:

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

 

代码样例:

package com.jason

import org.apache.log4j.Logger

object LogTest {
  def main(args: Array[String]): Unit = {
    val LOGGER = Logger.getLogger(getClass)
    LOGGER.info("this is a info demo")
    LOGGER.warn("this is a warn demo")
    LOGGER.error("this is a error demo")
    LOGGER.debug("this is a debug demo")
  }
}

结果输出:

2018 八月 26 23:44:30,379 INFO [main] com.jason.LogTest$.main(8) : this is a info demo
2018 八月 26 23:44:30,389 WARN [main] com.jason.LogTest$.main(9) : this is a warn demo
2018 八月 26 23:44:30,389 ERROR [main] com.jason.LogTest$.main(10) : this is a error demo

为什么输出只有三个?

log中的日志级别如下

debug < info < warn < error,默认只显示大于等于所设置级别的日志,我们在log4j.properties 中所设置的级别为 info(log4j.rootCategory=info,stdout)所以debug未被打印

如何关闭日志?做如下设置即可

log4j.rootCategory=off,stdout

打印日志在程序调试中非常有用,可以很方便的打印调试语句,并通过配置文件关闭打印,不用删除或注释代码

 

推荐阅读