Java常用日志框架详解
下文笔者讲述日常开发中常见的日志框架简介说明,如下所示
日志框架简介
Java日常开发中 我们常见的日志框架有: JDKLog、Log4J、LogBack、SLF4J、SLF4J 下文将依次讲述各日志框架的用途,如下所示
JDKLog(日志小刀)
JDKLog是JDK官方提供的一个记录日志的方式,直接在JDK中就可以使用。 import java.util.logging.Logger; /**** ** JDKLog 示例 **/ public class JDKLog { public static void main(String[] args) { Logger logger = Logger.getLogger("JDKLog"); logger.info("Hello World JDKLog."); } }
JDKLog优点: 使用非常简单,无需外界jar包 但是功能简单,扩展性差,目前市面上很少人使用
Log4J日志大炮
Log4j简介
Log4J是Apache中的日志开源框架 有多个分级(DEBUG/INFO/WARN/ERROR)记录级别 可区分记录,非常方便日志查看 Log4J: 有1.X版本和2.X 版本 现在官方推荐使用 2.X 版本 2.X架构和配置上都进行了调整 注意事项: log4J1.x版本已经停止维护(2015年8月) 现在大家都使用Log4j2版本
Log4j2使用示例
1.使用Log4J2.x框架首先需要引入依赖的包 <!-- Log4J --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.2</version> </dependency> 2.增加配置文件 log4j2.xml 放在 resource 目录下: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> 注意事项: 节点level属性表示输出的最低级别 3:编写测试类 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /**** ** Log4J Demo **/ public class Log4jLog { public static void main(String args[]) { Logger logger = LogManager.getLogger(Log4jLog.class); logger.debug("Debug Level"); logger.info("Info Level"); logger.warn("Warn Level"); logger.error("Error Level"); } }
注意事项: 当没有配置log4j2.xml配置文件 则LOG4J将自动启用类似于下面的的配置文件 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
LogBack日志火箭
LogBack是Log4J进化版 它和Log4j的日志框架属于一个作者 LogBack具有Log4j的所有优点,并且还引入占位符的概念
使用LogBack示例
1.引入相应的jar包 <!-- LogBack --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.7</version> </dependency> 2.配置logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> </layout> </appender> <logger name="com.java265" level="TRACE"/> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration> 注意事项: LogBack 的日志级别区分可以细分到类或包 这样就可以使日志记录变得更加灵活 在之后的类文件中引入Logger类,并进行日志记录。 3.测试代码编写 import org.slf4j.Logger; import org.slf4j.LoggerFactory; /**** ** LogBack Demo **/ public class LogBack { static final Logger logger = LoggerFactory.getLogger(LogBack.class); public static void main(String[] args) { logger.trace("Trace Level."); logger.debug("Debug Level."); logger.info("Info Level."); logger.warn("Warn Level."); logger.error("Error Level."); } }
LogBack优点
1.LogBack解决Log4J不能使用占位符的问题 2.运行速度快 3.内部集成了SLF4J
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。