日志工具

89 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情

日志能记录很多东西,如果程序出错了,它会记录下来,写成一个log文件。在这里就介绍java中常用的日志工具。

一.log4j的介绍

log4j是一个非常优秀的开源日志记录工具,它可以控制日志的输出级别,控制日志信息输送的目的地是控制台还是文件等,以及控制每一条日志的输出格式等。

开发项目时,一般配置log4j将错误信息等打印在控制台,当项目上线运行后,就会配置log4j将错误信息记录在日志文件中。

二.SLF4J

SLF4J,简单日志门面主要是为了 Java日志访问提供一套标准、规范的 API 框架,其主要意义在于提供接口,其余的具体实现则交给其他日志框架进行。

image.png

SpringBoot默认使用Slf4j+Logback作为日志框架。在Spring Boot项目中,只要添加了 Web 依赖,日志依赖就自动添加进来了。

三.Logback 的复杂配置

在 application.yml 配置文件中只能实现对日志的一些简单配置,如果想实现更 加细粒度的日志配置,就需要使用日志实现的自带配置文件,例如 Logback 的 logback.xml,Log4j 的 log4j.xml 等

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] -------- %m %n"></property>

    <!--控制台日志输出的 appender-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--控制输出流对象 默认 System.out 改为 System.err-->
        <target>System.err</target>
        <!--日志消息格式配置-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <springProfile name="dev">
                <pattern>${pattern}</pattern>
            </springProfile>
            <springProfile name="pro">
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] xxxxxxxx %m %n</pattern>
            </springProfile>
        </encoder>
    </appender>

    <!--自定义 looger 对象
           additivity="false" 自定义 logger 对象是否继承 rootLogger
        -->
    <logger name="com.example" level="info" additivity="false">
        <appender-ref ref="console"/>
    </logger>
</configuration>

类似这样配置就能实现复杂的日志配置,也可以输出任何你想要形式的日志。