日志文件的配置

日志文件,是只配一次的,一般不是新项目 都不会去做这个配置。但是,需要配置的时候,没经验的,可能到处百度了。

这里简单记录 日志文件配置的 基本配置

现在 spring-boot 比较流行,就以 spring-boot 的 logback-spring.xml 为例:

文件名:

日志配置的 文件名 对于日志来说,是首先要考虑的,基于通用性,一般日志配置的文件名都是固定的,像 spring-boot 就直接用 logback-spring.xml,放在 resources文件夹下,不用再做其他的指定。

xml:

xml文件 用下面的 标签包住

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

</configuration>

有时,需要 取属性配置文件中的 属性 来做 动态的 变量设置,可以用下面这个标签:

<!-- theName: 在 日志配置文件中 引用的名字,使用时: ${theName} -->
<!-- propertyname: 在 属性配置文件中 配置的属性名字-->
<springProperty scope="context" name="theName" source="propertyname" ></springProperty>


appender

<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${FILE_PATTERN}</pattern>
                <charset>UTF-8</charset>
            </encoder>
</appender>


<-- 输出到日志文件 -->
<!-- logName 是名字 -->
<!-- class 是具体的Appender-->
<appender name="ERROR_FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!-- 当前 appender 记录的日志级别过滤器-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 日志级别,只能写 一种 -->
            <level>ERROR</level>
            <!--  onMatch 和 onMismatch 表示 要输出的日志级别 匹配指定日志级别时 的行为-->
            <!-- ACCEPT ,输出; DENY 不输出-->
            <!-- 匹配则输出:<onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch>-->
            <!-- 不匹配则输出:<onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch>-->
            <!-- 匹配则输出的,只输出一种级别;不匹配则输出的,可以输出多种级别-->
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <!-- 日志文件名 -->
        <file>${log.path}/error.log</file>

        
        <!-- 日志输出的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${FILE_PATTERN}</pattern>
            <ImmediateFlush>false</ImmediateFlush>
            <charset>UTF-8</charset>
        </encoder>

        <!-- 滚动式生成日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${log.path}/error-%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 日志保留的最大天数,这个需要根据实际来设置,
                 可能日志输出的多,日志会很占磁盘 -->
            <MaxHistory>2</MaxHistory>
        </rollingPolicy>
</appender>



    <!-- 生成日志文件, 匹配所有的日志级别 -->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/logback.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${FILE_PATTERN}</pattern>
            <ImmediateFlush>false</ImmediateFlush>
            <charset>UTF-8</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件输出的文件名 -->
            <FileNamePattern>${log.path}/logback-%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>2</MaxHistory>
        </rollingPolicy>
    </appender>

<!-- 
    上面的三种类别,一般可以满足需求,只需要指定 几个变量:
    log.path : 日志路径
    FILE_PATTERN: 日志输出格式
    
-->

<!-- log.path : 日志路径 
    1. 可以 直接写死
    2. 可以动态获取:
        比如,可以实现一个 接口: ch.qos.logback.core.spi.PropertyDefiner
-->
<!-- LogPathProperty 实现了 PropertyDefiner 接口 -->
<define name="log.path" class="xxx.LogPathProperty"/>

<!--  FILE_PATTERN: 日志输出格式 -->
<property name="FILE_PATTERN"
              value="[%date{yyyy-MM-dd HH:mm:ss.SSS}] ${LOG_LEVEL_PATTERN:-%p} ${PID:- } [%traceId] [%t] [%logger{10}] : %m%n"/>
<!-- 打印 INFO 及以上的 级别 -->
    <root level="INFO" >
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
        <appender-ref ref="console"/>
    </root>

通过以上几个点的配置,一个日志文件配置就OK了,当然需要引入必要的日志jar

日志文件配置 还有其他的 配置项,需要的话 再自己研究吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值