1821349743@qq.com
2023-04-06 be4c913206aba510abb30ceeb145424f18407592
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<configuration>
    <property name="LOG_HOME" value="./logs/backend" />
    <timestamp key="byDate" datePattern="yyyy-MM-dd"/>
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
    <property name="MESSAGE_FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}.%M - %msg%n" />
    <!-- 日志文件保留时长 -->
    <property name="maxhistory" value="60"/>
    <!-- 日志文件分割大小 -->
    <property name="logSize" value="500MB"/>
 
    <!-- 控制台 -->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${MESSAGE_FILE_PATTERN}</Pattern>
        </layout>
    </appender>
 
    <!-- error级别日志文件 -->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <append>true</append>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/error/product_error_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--日志文件保留天数-->
            <maxHistory>${maxhistory}</maxHistory>
            <!--日志分割大小-->
            <maxFileSize>${logSize}</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${MESSAGE_FILE_PATTERN}</pattern>
        </encoder>
    </appender>
 
    <!-- info级别日志文件 -->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <append>true</append>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/info/product_info_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--日志文件保留天数-->
            <maxHistory>${maxhistory}</maxHistory>
            <!--日志分割大小-->
            <maxFileSize>${logSize}</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${MESSAGE_FILE_PATTERN}</pattern>
        </encoder>
    </appender>
 
    <!-- debug级别日志文件 -->
    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <append>true</append>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/debug/product_debug_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--日志文件保留天数-->
            <maxHistory>${maxhistory}</maxHistory>
            <!--日志分割大小-->
            <maxFileSize>${logSize}</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${MESSAGE_FILE_PATTERN}</pattern>
        </encoder>
    </appender>
    <!--db log configure-->
    <logger name="com.apache.ibatis" level="INFO"/>
    <logger name="java.sql.Connection" level="INFO"/>
    <logger name="java.sql.Statement" level="INFO"/>
    <logger name="java.sql.PreparedStatement" level="INFO"/>
    <logger name="org.springframework" level="INFO"/>
    
 
    <!-- 生产环境 -->
    <springProfile name="prod">
        <root level="info">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="errorAppender"/>
            <appender-ref ref="infoAppender"/>
        </root>
    </springProfile>
 
    <!-- 测试环境 -->
    <springProfile name="test">
        <root level="debug">
            <appender-ref ref="errorAppender"/>
            <appender-ref ref="infoAppender"/>
            <appender-ref ref="debugAppender"/>
        </root>
    </springProfile>
 
    <!-- 开发环境 -->
    <springProfile name="dev">
        <root level="debug">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="errorAppender"/>
            <appender-ref ref="infoAppender"/>
            <appender-ref ref="debugAppender"/>
        </root>
    </springProfile>
    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
</configuration>