項目結構:
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
打印日志在程序調試中非常有用,可以很方便的打印調試語句,並通過配置文件關閉打印,不用刪除或注釋代碼