spring-boot 日志配置

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

<!--
    ##########当存在spring-boot-starter-web 这儿依赖包,就不需要再添加有关日志的依赖包了。
    可复用的springboot日志配置文件,,, 自定义日志输出格式,输出位置, 保存天数等。
    日志配置文件有默认的 几个命名: logback.xml ,logback-spring.xml ,...  ,常用的logback-spring.xml 。
    logback-spring.xml : 支持配置多环境(生产,开发)日志。
    当然也可以自定义文件名称:logger-config.xml , 但必须在application.yml 文件中说明 logging.config=classpath:logger-config.xml
    下面对个节点属性进行说明:
    1.根节点 configuration
      属性:scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
           debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值 false

    2.property  定义变量。 通过${} 取值

    3.appender 格式化日志输出 。
        name:名称, class :指定输出策略,常用控制台输出,文件输出两种
        encoder: 指定具体的输出格式。
        %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
        时间 。。。。。。。。。。。。。进程。。。。。等级。。。。输出位置。输出信息。换位符

        filter :过滤器,过来输出日志级别。

    4.rollingPolicy :定义文件输出的回滚策略, 按日期分目录,按文件大小分目录,回滚。

    5.logger: 指定某个具体的类或者包,的日志输出。

    6.root : 指定最基本的日志输出级别。 必须存在的节点。


-->
<configuration scan="true" debug="false">

    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <property name="log_dir" value="../mlogs"/>

    <property name="maxHistory" value="30"/>

    <!-- ConsoleAppender 控制台输出日志 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 对日志进行格式化 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
        </encoder>
    </appender>

    <!--各种级别日志输出, 通过过滤器过滤其他级别的日志,各级别日志分别保存-->

    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/error-log.log
            </fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>


    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/warn-log.log
            </fileNamePattern>
            <!-- 日志最大的历史 30天 -->
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>


    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 过滤器,只记录INFO级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/info-log.log
            </fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>


    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/debug-log.log
            </fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 按照固定窗口模式生成日志文件,当文件大于20MB时,生成新的日志文件。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志。
       <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
         <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>
         <minIndex>1</minIndex>
         <maxIndex>3</maxIndex>
       </rollingPolicy>   -->
    <!-- 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>   -->

    <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>TRACE</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/trace-log.log
            </fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <!--···················································································-->
    <!--给 logger 节点 对应 用的-->
    <appender name="loggerController" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/loggerController.log
            </fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <!--非必须节点。 用来设置某个具体的类或者包 的日志,比如你想要吧某个controller的日志单独拿出来,可以用这个节点设置
        level :指定这个包/类 要输出级别, additivity: 是否向上传递给root, appender-ref: 识别appender
    -->
    <logger name="org.spring.controller" level="debug" additivity="ture">
        <appender-ref ref="loggerController"/>
    </logger>

    <!--必须的节点,指定最基本的输出级别level,识别appender,输出到对应的文件位置-->
    <root level="info">
        <!--<appender-ref ref="STDOUT"/>-->
        <appender-ref ref="ERROR"/>
        <appender-ref ref="INFO"/>
        <appender-ref ref="WARN"/>
        <appender-ref ref="DEBUG"/>
        <appender-ref ref="TRACE"/>
    </root>

    <!--多环境日志输出, 这个是使用logback-spring.xml命名时可以用的-->
    <!--测试+开发环境的 日志输出-->
    <!--<springProfile name="dev,test">-->
        <!--<logger name="org.spring.controller" level="debug" additivity="ture">-->
            <!--<appender-ref ref="loggerController"/>-->
        <!--</logger>-->
    <!--</springProfile>-->
    <!--&lt;!&ndash;生产环境&ndash;&gt;-->
    <!--<springProfile name="pro">-->
        <!--<logger name="org.spring.controller" level="info" additivity="false">-->
            <!--<appender-ref ref="loggerController"/>-->
        <!--</logger>-->
    <!--</springProfile>-->
</configuration>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值