日志篇

作者: 简单coder | 来源:发表于2018-09-10 17:58 被阅读26次

    使用spring-boot框架(还不用boot你就落伍了!)
    使用slf4j+logback打印日志

    1.控制台打印

    原生使用logback的工厂类进行打印



    默认是info级别,在level类中,只有比当前级别高才会有日志打印



    后续在配置文件中会说明如何更改默认级别

    使用lombok三方可以自动帮我们注册log对象(就是少些下面这行代码)

    private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
    

    这里是配置

    <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
    </dependency>
    

    带参打印最好使用这种占位格式的打印:

    log.info("name: {},password: {}", name, password);
    

    2.文件打印

    我们在线上的项目需要将文件打印到本地,而且最好是一天一打印,这里就需要我们对logback进行更细化的配置
    在application.yml中(如果是properties后缀的话直接改后缀为yml即可)配置:


    %d:打印时间
    %msg:打印信息
    %n: 换行
    file生成日志打印文件位置,自己选择一个目录即可,生成如下文件



    这样还是不能满足我们的需求,每日打印需要我们进行更细化的配置,这里使用xml的配置方式配置:

    spring约定我们在resources目录下创建一个logback-spring的xml文件,文件内容配置如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--logback的xml标签提示很不友好,建议直接复制一份改改即可-->
    <configuration>
    
        <!--日志打印格式-->
        <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>
                    %d - %msg%n
                </pattern>
            </layout>
        </appender>
    
    
        <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--过滤器是为了只拦截error日志,当匹配时就拒绝,当不匹配的时候就通过-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>DENY</onMatch>
                <onMismatch>ACCEPT</onMismatch>
            </filter>
            <encoder>
                <pattern>
                    %msg%n
                </pattern>
            </encoder>
            <!--滚动策略一天一次-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>/var/log/tomcat/sell/info.%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
    
        <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <encoder>
                <pattern>
                    %msg%n
                </pattern>
            </encoder>
            <!--滚动策略一天一次-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>/var/log/tomcat/sell/error.%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
    
        <!--配置哪些appender需要打印-->
        <root level="info">
            <appender-ref ref="consoleLog" />
            <appender-ref ref="fileInfoLog" />
            <appender-ref ref="fileErrorLog" />
        </root>
    
    </configuration>
    
    errorlog infolog

    相关文章

      网友评论

          本文标题:日志篇

          本文链接:https://www.haomeiwen.com/subject/qezsgftx.html