Java常用日志框架详解

书欣 SpringBoot 发布时间:2022-08-06 22:09:48 阅读数:16102 1
下文笔者讲述日常开发中常见的日志框架简介说明,如下所示

日志框架简介

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
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202208/4168.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者