zoukankan      html  css  js  c++  java
  • SpringBoot日志相关

    SpringBoot使用的是SLF4j当门面,Logback当实现完成

    日志级别

    数字越大,级别越高,框架只会输出大于等于当前日志级别的信息

    • ERROR 40
    • WARN 30
    • INFO 20
    • DEBUG 10
    • TRACE 0

    几种常用的使用方法

    第一种 :

    private Logger logger = LoggerFactory.getLogger(WeixindiancanApplicationTests.class);
    
    logger.info();
    ...
    

    默认的级别上info,按上面的排名只会输出 info,warn,error级别以上的日志

    在获取logger对象时,一般都是将本类的class传递进去,在默认的格式在日志输出时会把每条日志信息所在的class名输出出来

    第二种: SpringBoot整合 Lombok

    Lombok不仅仅提供了强大的@Data,和getset注解,同时支持日志相关

    @Slf4j添加在类上,我们就不用再手动的获取Logger对象了,而是直接使用log

    log.debug("dubug..."); 
    log.info("info...");
    log.error("error...");
    

    格式:

    在输出日志的时候可以向下面这样,两种写法

    log.info("name="+name+"  age="+age);
    log.info("name= {},age: {}",name,age);
    

    application.yml的配置

    如图是日志相关的配置

    • path: E:

    将日志输出到文件 , 默认会在这个路径下创建spring.log

    • file: E:mylog.log

    将日志输出到指定目录的指定文件, 可以取代上面的path

    • level:
      • 可以设置上面的五种日志级别
      • 可以指定某个类的日志级别
    logging:
      pattern:
      level:
        com.changwu.wen.WeicanApplication: debug
    
    • console: 格式,网上很多不同的输出格式

    logback-sring.xml的配置

    通过这个配置文件,可以更方便的控制日志的输出,比如将 级别为info的输出到A文件, 级别为error的输出到B文件

    默认放置在Resources目录下

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
            <!-- 只保留 INFO -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <!-- 当匹配到error时, 禁止输出 -->
                <onMatch>DENY</onMatch>
                <onMismatch>ACCEPT</onMismatch>
            </filter>
    
            <encoder> <!--展示格式-->
                <pattern>
                    %msg%n
                </pattern>
            </encoder>
            <!--滚动策略  按照时间,每天产生一个-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>E:info.%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
    
        <!-- 创建第三个配置项,将error和info分别输出到不同的文件中 -->
        <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 只保留ERROR -->
            <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>E:error.%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
    
        <!-- 将上面的配置项,使用到root目录上 -->
        <root level="info">
            <appender-ref ref="consoleLog"/>
            <appender-ref ref="fileInfoLog"/>
            <appender-ref ref="fileErrorLog"/>
        </root>
    
    </configuration>
    
  • 相关阅读:
    [代码审计]eyoucms前台未授权任意文件上传
    第二届i春秋挖洞大赛的一些感想
    [代码审计]云ec电商系统代码审计
    [代码审计]covercms 后台getshell
    RPO漏洞学习
    [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本
    css块级元素居中
    Linux常用网站
    Linux常用命令
    C#编程网站
  • 原文地址:https://www.cnblogs.com/ZhuChangwu/p/11266679.html
Copyright © 2011-2022 走看看