logback.xml。配置的日志格式化以及日志的文件

1.出现保存日志文件地址不对

参考 1

  mavne 导入项目的时候 的保存地址修改一下  

    idea 重新导入项目解决 重洗配置

  1.2文件保存路径设置可分以下三种: 

    相对路径 logs

    绝对路径 /logs 一般不采用

    运行程序的父级目录 ../logs

Logback file属性 与 fileNamePattern属性的关系 

TimeBasedRollingPolicy(每天新产生一个日志文件)
<appender name="emergencyLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 写入日志内容的文件名称(目录) -->
    <File>log/check.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
        <fileNamePattern>log/check.%d{yyyy-MM-dd}.log</fileNamePattern>
        <!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <!-- pattern节点,用来设置日志的输入格式 -->
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger [%msg]%n</pattern>
        <!-- 记录日志的编码:此处设置字符集 - -->
        <charset>UTF-8</charset>
    </encoder>
</appender>
复制代码

2.SpringBoot 自定义logback.xml打印日志

  2.1 SpringBoot默认的日志组合为slf4j + logback,但是默认配置是日志只输出在控制台,在实际项目中我们需要输出到指定的log文件才便于日后的日志定位。

  2.2 

    •   在无任何配置的前提下,只要我们引入了SpringBoot的包,就可以直接使用日志的功能。

    •   SpringBoot会默认去加载resources下名为logback.xml 或者 logback-spring.xml的配置文件

  2.3  logback.xml 文件位置

    

 

 

   2.4 <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/root.log.%d{yyyy-MM-dd}.log</FileNamePattern>

   2.5  logback.xml文件默认是放在resources目录下的,如何想放在其他路径下需要在application.yml里指定路径:

    

# 指定logback的路径
logging:
  config: classpath:config/logback.xml

 

 3.SpringBoot系列——Logback日志,输出到文件以及实时输出到web页面

  3.1 打印日志的两种方式

     private final Logger log = LoggerFactory.getLogger(this.getClass());  

    使用lombok的@Slf4j,帮我们创建Logger对象,效果与方法1一样 

 
 

4.appender-ref的作用 

  异步日志

  4.1 filter 过滤器

    当满足过滤器条件的时候才打印日志

    比较日志记录请求的Level值是否大于等于相应的日志记录类实例的Level值

  

5. mybatis的sql查询日志希望特殊处理,只输出到一个专门的文件mybatis.log中

 

    <appender name="prpallInterfaceFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_Name}.interface.log</file>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_Name}.interface.%d{yyyy-MM-dd}.log
            </fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%L - %msg%n
            </pattern>
        </encoder>
    </appender>

    <logger name="ins.business.common.filter.LogFilter" level="INFO" additivity="false">
        <appender-ref ref="prpallInterfaceFile" />
    </logger>

 

6. additivity设为true时,这个logger标签会继承root,也就不止打印自己的日志,还会打印root的日志,打印两遍。所以一般情况下都会设置成false。

 

 

7.log4net的配置之appender  执行日志事件输出的组件(appender) 滚动策略:重新生成一个新日志文件存储。 根据时间制定日志文件的滚动策略

  7.1  ConsoleAppender:将日志信息输出到控制台

  7.2 FileAppender将日志信息输出到指定的日志文件。

  7.3 RollingFileAppender继承自FileAppender,提供日志目标文件自动切换的功能。例如可以用日期作为日志分割的条件。

    RollingFileAppender有两个重要属性,

    RollingPolicy负责怎么切换日志,TriggeringPolicy负责何时切换。为了使RollingFileAppender起作用,这两个属性必须设置,

    但是如果RollingPolicy的实现类同样实现了TriggeringPolicy接口,则也可以只设置RollingPolicy这个属性。

    rollingPolicy    RollingPolicy    当发生日志切换时,RollingFileAppender的切换行为。例如日志文件名的修改
    triggeringPolicy    TriggeringPolicy    决定什么时候发生日志切换,例如日期,日志文件大小到达一定值,如日期改变生成新的文件

 

 

    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_Name}.log</file>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_Name}.%d{yyyy-MM-dd}.log
            </fileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%L - %msg%n
            </pattern>
        </encoder>
    </appender>

 

 8.logs 如果发现日志打印到别的项目上

  如果java-jar 启动 logs 输出路径没有问题 就不用管了,一般重启就能解决

 

 

 

 
 
 
 
 
posted @ 2022-03-22 17:10  BBS_自律  阅读(602)  评论(0)    收藏  举报