zoukankan      html  css  js  c++  java
  • SpringBoot按日期和文件大小生成日志文件到对应日期文件夹

     

    一、效果图:

     

    二、代码

    (一)Bootstrap.yml配置文件

    logging:
      config: classpath:logback-spring.xml

    (二)新增logback-spring.xml日志配置文件

     

    <configuration>
       <!-- %m输出的信息, %p日志级别, %t线程名, %d日期, %c类的全名, %i索引 -->
       <!-- appender是configuration的子节点,是负责写日志的组件 -->
       <!-- ConsoleAppender把日志输出到控制台 -->
       <!--    <property name="CONSOLE_LOG_PATTERN" -->
       <!--               value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/> -->
       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
             <!--<pattern>${CONSOLE_LOG_PATTERN}</pattern> -->
             <pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) (%file:%line)- %m%n</pattern>
             <!-- 控制台也要使用utf-8,不要使用gbk -->
             <charset>UTF-8</charset>
          </encoder>
       </appender>
    
       <!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
       <!-- 1.先按日期存日志,日期变了,将前一天的日志文件名重命名为xxx%日期%索引,新的日志仍然是sys.log -->
       <!-- 2.如果日期没有变化,但是当前日志文件的大小超过1kb时,对当前日志进行分割 重名名 -->
       <appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
          <!--<File>${catalina.base}/mylog/sys.log</File>-->
          <File>${catalina.base}/%d/sys.log</File>
          <!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
          <!-- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -->
          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
             <!-- 文件名:mylog/sys.2017-12-05.0.log -->
             <!--<fileNamePattern>${catalina.base}/mylog/sys.%d.%i.log</fileNamePattern>-->
             <fileNamePattern>${catalina.base}/%d/sys.%d.%i.log</fileNamePattern>
             <!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
             <maxHistory>30</maxHistory>
             <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- maxFileSize:这是活动文件的大小,默认值是10MB,本篇设置为1KB,只是为了演示 -->
                <maxFileSize>1KB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
          </rollingPolicy>
          <encoder>
             <!-- pattern节点,用来设置日志的输入格式 -->
             <pattern>
                %d %p (%file:%line)- %m%n
             </pattern>
             <!-- 记录日志的编码 -->
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
          </encoder>
       </appender>
       <!-- 控制台日志输出级别 -->
       <root level="info">
          <appender-ref ref="STDOUT" />
       </root>
       <!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
       <!-- com.appley为根包,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -->
       <!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  -->
       <logger name="com.yjlc.service.impl.seckill" level="DEBUG">
          <appender-ref ref="syslog" />
       </logger>
    </configuration>

    三、准备架包

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

    在后端代码中需要输出日志到日志文件中的,则根据日志配置文件的日志输出级别使用不同的打印语句,如INFO级别:

    log.info("INFO级别日志输出");
    

      按照以上步骤操作即可实现对应效果。

    如果对以上内容有疑问的欢迎留言探讨。

    一、代码

    (一)Bootstrap.yml配置文件

  • 相关阅读:
    ClickOnce發布經驗
    reporting Server組件不全引起的致命錯誤
    異步調用
    Usercontrol Hosted in IE
    MATLAB命令大全(转载)
    一种保护眼睛的好方法
    关于oracle自动编号
    An Algorithm Summary of Programming Collective Intelligence (1)
    An Algorithm Summary of Programming Collective Intelligence (3)
    An Algorithm Summary of Programming Collective Intelligence (4)
  • 原文地址:https://www.cnblogs.com/chenyuanbo/p/13572639.html
Copyright © 2011-2022 走看看