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 ..."); }
打印结果如下: