• Spring Boot 使用 slf4j 进行日志记录


    SLF4J,即简单日志门面(Simple Logging Facade forJava),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J 是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
    阿里巴巴强制使用可想而知好不好用

    使用 slf4j 记录日志非常简单,直接使用 LoggerFactory 创建即可

    import org.slf4j.Logger;import org.slf4j.LoggerFactory;
    public class Test {
      private static final Logger logger =LoggerFactory.getLogger(Test.class);
      // ……
    }
    

    Spring Boot 对 slf4j 支持的很好,内部已经集成了 slf4j,一般我们在使用的时候,会对slf4j 做一下配置。application.yml 文件是 Spring Boot 中唯一一个需要配置的文件,一开始创建工程的时候是 application.properties 文件,个人比较细化用 yml文件,因为 yml 文件的层次感特别好,看起来更直观,但是 yml 文件对格式要求比较高,比如英文冒号后面必须要有个空格,否则项目估计无法启动,而且也不报错。用properties 还是 yml 视个人习惯而定,都可以。本课程使用 yml。我们看一下 application.yml 文件中对日志的配置.

    logging:
      config: logback.xml
      level:
        com.itcodai.course03.dao: trace
    

    logging.config 是用来指定项目启动的时候,读取哪个配置文件,这里指定的是日志配置文件是根路径下的 logback.xml 文件,关于日志的相关配置信息,都放在logback.xml 文件中了。logging.level 是用来指定具体的 mapper 中日志的输出级别,上面的配置表示 com.itcodai.course03.dao 包下的所有 mapper 日志输出级别为 trace,会将操作数据库的 sql 打印出来,开发时设置成 trace 方便定位问题,在生产环境上,将这个日志级别再设置成 error 级别即可(本节课不讨论 mapper 层,在后面Spring Boot 集成 MyBatis 时再详细讨论)。常用的日志级别按照从高到低依次为:ERROR、WARN、INFO、DEBUG

    配置logback.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
    
        <!-- 定义日志存储的路径,不要配置相对路径 -->
        <property name="FILE_PATH" value="D:/logs/course03/demo.%d{yyyy-MM-dd}.%i.log" />
    
        <!-- 控制台输出日志 -->
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
                <pattern>${LOG_PATTERN}</pattern>
            </encoder>
        </appender>
    
        <!--每天生成一个日志文件,保存15天的日志文件。rollingFile是用来切分文件的 -->
        <appender name="FILE"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${FILE_PATH}</fileNamePattern>
                <!-- keep 15 days' worth of history -->
                <maxHistory>15</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <!-- 日志文件的最大大小 -->
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
    
            <encoder>
                <pattern>${LOG_PATTERN}</pattern>
            </encoder>
        </appender>
        <!-- project default level -->
        <logger name="com.itcodai.course03" level="INFO" />
    
        <!-- 日志输出级别 -->
        <root level="INFO">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="FILE" />
        </root>
    </configuration>
    
  • 相关阅读:
    C#怎样保证弹出窗体是唯一并居中显示
    1、怎样设置C#OpenFileDialog(文件选择窗体)的指定路径、文件格式等属性(设置打开默认路径、文件格式、窗体显示文本)
    FTP在CentOS上安装与使用
    nano在CentOS上的安装和使用
    CentOS 7 安装php5.6,Nginx,Memcached环境及配置
    PhpStorm 2017.1安装及破解过程
    在唯一密钥属性“name”设置为“ExtensionlessUrlHandler-Integrated-4.0”时,无法添加类型为“add”的重复集合项
    获取含有字符串数组里元素的数据,并批量删除
    如何去掉browserLinkSignalR
    使用VS2015开发asp程序让IIS express 允许的父路径的方法
  • 原文地址:https://www.cnblogs.com/handsometaoa/p/15875602.html
Copyright © 2020-2023  润新知