zoukankan      html  css  js  c++  java
  • 使用logback来输出日志

    日志级别——level

    • debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。
    • info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。
    • warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要
    • error:错误,很明显,就是程序异常

    logback读取配置文件

    logback在初始化时,按照以下顺序来读取配置文件

    1. 如果java程序启动时指定了logback.configurationFile属性,就用该属性指定的配置文件。如java -Dlogback.configurationFile=/path/to/mylogback.xml Test ,这样执行Test类的时候就会加载/path/to/mylogback.xml配置。
    2. 在classpath中查找 logback-test.xml 文件。
    3. 在classpath中查找 logback.groovy 文件。
    4. 在classpath中查找 logback.xml 文件。

    logback.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
    
        <!--定义变量,可以通过${name}使用-->
        <property name="path" value="log" />
    
        <!--ConsoleAppender 用于配置日志的输出,ConsoleAppender是控制台-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!-- 配置日志格式,这是一个比较通用的格式 -->
                <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>
    
        <!-- 输出终端是滚动文件 -->
        <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
                <fileNamePattern>${path}/info/info-%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 最大保存2个文件,超出的历史文件会被删除 -->
                <maxHistory>2</maxHistory>
            </rollingPolicy>
    
            <!-- 按照日志级别进行过滤 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
    
            <encoder>
                <!-- 配置日志格式,这是一个比较通用的格式 -->
                <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>
    
        <!-- 输出终端是滚动文件 -->
        <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
                <fileNamePattern>${path}/warn/warn-%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 最大保存2个文件,超出的历史文件会被删除 -->
                <maxHistory>2</maxHistory>
            </rollingPolicy>
    
            <!-- 按照日志级别进行过滤 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
    
            <encoder>
                <!-- 配置日志格式,这是一个比较通用的格式 -->
                <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>
    
        <root level="INFO">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="INFO" />
            <appender-ref ref="WARN" />
        </root>
    </configuration>
    
    奋斗不一定成功,不奋斗一定不会成功!
  • 相关阅读:
    窗口宽高 滚动条滚动距离 元素的文档坐标和窗口坐标
    parentNode parentElement childNodes children
    ffmpeg 提取mp3
    Linux修改时区的正确方法
    pip
    wireguard
    Nextcloud挂载谷歌云盘搭建
    ts合并
    screen
    google drive
  • 原文地址:https://www.cnblogs.com/xucoding/p/11811806.html
Copyright © 2011-2022 走看看