logback日志文件

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Example LOGBACK Configuration File
  http://logback.qos.ch/manual/configuration.html
  -->
<configuration scan="false" scanPeriod="30 seconds">

    <property name="logDir" value="日志路径"/>
    <property name="serviceName" value="项目名称"/>
    <property name="hostName" value="${LOCAL_IP}"/>
    <property name="FILE_PATTERN"
              value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [${serviceName}] [%X{clientip}] [%X{logid}] [%thread] [%-5level] [%line] %logger{36} - %msg %n"/>

    <!-- console appender定义 -->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${FILE_PATTERN}</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${serviceName}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <fileNamePattern>
                ${logDir}/${serviceName}/archive/info-%d{yyyy-MM-dd}-%i.log.gz
            </fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
        </filter>

        <encoder>
            <Pattern>${FILE_PATTERN}</Pattern>
        </encoder>
    </appender>

    <appender name="info_fileAsync" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <appender-ref ref="FILE"/>
    </appender>

    <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${serviceName}/warn.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <fileNamePattern>
                ${logDir}/${serviceName}/archive/warn-%d{yyyy-MM-dd}-%i.log.gz
            </fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <Pattern>${FILE_PATTERN}</Pattern>
        </encoder>
    </appender>

    <appender name="warn_fileAsync" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <appender-ref ref="FILE_WARN"/>
    </appender>


    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${serviceName}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <fileNamePattern>
                ${logDir}/${serviceName}/archive/error-%d{yyyy-MM-dd}-%i.log.gz
            </fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <Pattern>${FILE_PATTERN}</Pattern>
        </encoder>
    </appender>

    <appender name="error_fileAsync" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <appender-ref ref="FILE_ERROR"/>
    </appender>

    <root level="INFO">
        <appender-ref ref="info_fileAsync"/>
        <appender-ref ref="warn_fileAsync"/>
        <appender-ref ref="error_fileAsync"/>
        <appender-ref ref="consoleAppender"/>
    </root>
</configuration>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐