1.基本概念
日志门面(接口):commons logging ; slf4j ;
日志具体实现:log4j ; logback(Spring 系列在使用) ; log4j2(添加了异步logger的实现,提高了性能)
2.具体使用(门面:slf4j 实现 : log4j2)
①添加maven依赖
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
②添加log4j2.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
<!-- 定义名字为HelloWorld的Logger,其日志级别为info,additivity为false -->>
<Logger name="HelloWorld" level="info" additivity="false">
<AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定义的Console -->
</Logger>
</Loggers>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%p] [%c] [%L]: %m%n" />
</Console>
</Appenders>
</Configuration>
注:
Appenders:日志输出地
PatternLayout :自定义日志打印格式
%d:日期时间
%t: 输出日志事件的线程名
%p:输出日志信息的优先级,即debug、info、warn、error等
%c:输出日志信息所属的类目,通常指所在类的全名
%L:输出代码中的行号(比较耗损性能)
%m:输出代码中指定的消息
%n:输出一个回车换行符
③使用
public static void main(String[] args) {
//获取指定的日志名
Logger logger = LoggerFactory.getLogger("HelloWorld");
logger.trace("trace log ...");
logger.debug("debug log ...");
logger.info("info log ...");
logger.warn("warn log ...");
logger.error("error log ...");
//其他非指定的日志(配置文件中的没有指定的loggger,即指root)
Logger logger1 = LoggerFactory.getLogger(LogerTest.class);
logger1.trace("trace log ...");
logger1.debug("debug log ...");
logger1.info("info log ...");
logger1.warn("warn log ...");
logger1.error("error log ...");
}
打印结果如下: