zoukankan      html  css  js  c++  java
  • SpringBoot框架:按照日期日志切割

    一、依赖包导入

      1、导入logback依赖包:

    <dependency>

        <groupId>ch.qos.logback</groupId>

        <artifactId>logback-classic</artifactId>

        <version>1.2.3</version></dependency>

    二、编写日志规则

      1、在resources下添加logback.xml文件,内容如下:

    <?xml version="1.0" encoding="utf-8"?><configuration>

        <!-- 定义文件输出格式, 编码方式, 输出文件的路径 -->

        <property name="pattern"

                  value="[%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %method %line - %msg%n"/>

        <property name="charsetEncoding" value="UTF-8"/>

        <property name="logPathError" value="/root/monitoring/service/logs/service-log/error"/>

        <property name="logPathWarning" value="/root/monitoring/service/logs/service-log/warning"/>

        <property name="logPathInfo" value="/root/monitoring/service/logs/service-log/info"/>

        <!-- CONSOLG 控制台日志-->

        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">

            <encoder>

                <pattern>${pattern}</pattern>

                <charset>${charsetEncoding}</charset>

            </encoder>

        </appender>

        <!-- INFO 输出到文件 -->

        <appender name="infoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <append>true</append>

            <encoder>

                <pattern>${pattern}</pattern>

                <charset>${charsetEncoding}</charset>

            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

                <fileNamePattern>

                    ${logPathInfo}${file.separator}%d{yyyy-MM-dd}${file.separator}service-INFO-%d{yyyy-MM-dd}.%i.log

                </fileNamePattern>

                <maxHistory>30</maxHistory>

                <maxFileSize>10MB</maxFileSize>

            </rollingPolicy>

            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

                <!-- 设置日志输出级别 -->

                <level>INFO</level>

            </filter>

        </appender>

        <!-- WARN 输出到文件 -->

        <appender name="warnLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <append>true</append>

            <encoder>

                <pattern>${pattern}</pattern>

                <charset>${charsetEncoding}</charset>

            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

                <fileNamePattern>

                    ${logPathWarning}${file.separator}%d{yyyy-MM-dd}${file.separator}service-WARN-%d{yyyy-MM-dd}.%i.log

                </fileNamePattern>

                <maxHistory>30</maxHistory>

                <maxFileSize>10MB</maxFileSize>

            </rollingPolicy>

            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

                <!-- 设置日志输出级别 -->

                <level>WARN</level>

            </filter>

        </appender>

        <!-- ERROR 输出到文件 -->

        <appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <append>true</append>

            <encoder>

                <pattern>${pattern}</pattern>

                <charset>${charsetEncoding}</charset>

            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

                <fileNamePattern>

                    ${logPathError}${file.separator}%d{yyyy-MM-dd}${file.separator}service-ERROR-%d{yyyy-MM-dd}.%i.log

                </fileNamePattern>

                <maxHistory>30</maxHistory>

                <maxFileSize>10MB</maxFileSize>

            </rollingPolicy>

            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

                <!-- 设置日志输出级别 -->

                <level>ERROR</level>

            </filter>

        </appender>

        <!--配置日志输出的级别-->

        <root level="INFO">

            <appender-ref ref="console"/>

            <appender-ref ref="infoLog"/>

            <appender-ref ref="warnLog"/>

            <appender-ref ref="errorLog"/>

        </root></configuration>

      2、标签、参数配置详情

      (1)configuration:

      scan: 默认为true,当设置为true时,配置文件发生改变则会被重新加载。

      scanPeriod: 设置监测配置文件是否有修改的时间间隔,默认单位是毫秒;当scan为true此属性生效,默认的时间间隔为1分钟。

      debug: 默认为false,当设置为true时,打印内部日志信息。

      (2)property:

      name: 变量的名称

      value: 变量的值

      (3)appender:

      ①ConsoleAppender:

      encoder:对日志进行格式化。

      target:字符串System.out或者System.err。

      ②FileAppender:

      file:被写入的文件名,如果上级目录不存在会自动创建。

      append:默认为true,true则日志追加到文件结尾,false则清空现存文件。

      encoder:对日志进行格式化。

      prudent:默认false,若是true则日志安全的写入文件。

      ③RollingFileAppender:

      file:被写入的文件名,如果上级目录不存在会自动创建。

      append:默认为true,true则日志追加到文件结尾,false则清空现存文件。

      rollingPolicy:当发生滚动时,决定RollingFileAppender的行为是文件移动或重命名,属性class定义具体的滚动策略类ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy

        fileNamePattern:必要节点,包含文件名及“%d”转换符,“%d”包含java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。如果直接使用 %d,默认格式是 yyyy-MM-dd。

                  RollingFileAppender的file字节点可有可无,通过设置file可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;

                  如果没设置file,活动文件的名字会根据fileNamePattern 的值,每隔一段时间改变一次。“/”或者“”会被当做目录分隔符。
                  必须含有“%i”,在切分文件时这个数字会用来做标识。

        maxHistory:    可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。

                  假设设置每个月滚动,且<maxHistory>6,则只保存最近6个月的文件,删除之前的旧文件。

        maxFileSize:     这是活动文件的大小,默认值是10MB。

      ④AsyncAppender

      (4)logger:

      设置某一包或类下的日志打印级别、appender。

      (5)root:

      指定日志级别及输出的appender。

    三、映射

      1、在yml中对logback.xml进行映射,使其生效:

    logging:

      config: classpath:logback.xml

    四、运行结果

      1、按照日志级别进行切割:

      

      2、按照时间和大小进行切割:

      

      

     

    __EOF__

  • 相关阅读:
    matlab : Nelder mead simplex 单纯形直接搜索算法;
    python: 基本知识(二)
    vim: 基本知识;
    C++: 带参数回调函数和不带参数的回调函数;
    android studio DrawerLayout(官方侧滑菜单)的简单使用1
    Android studio DrawerLayout示例
    android studio ViewPager
    团队开发之任务认领
    android studio ViewPager的简单使用
    Android studio 菜单(Menu)
  • 原文地址:https://www.cnblogs.com/lixiangang/p/14553995.html
Copyright © 2011-2022 走看看