“djh”
2025-11-04 3dee2a15cad899b998da637ca07768d7c92f6052
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
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <!-- 变量定义(对应原Logback的property) -->
    <Properties>
        <!-- 应用名称(从Spring环境变量获取,默认值同原配置) -->
        <Property name="APP_NAME">${spring:spring.application.name:-fourierSpecialGasMonitor}</Property>
        <!-- 日志格式 -->
        <Property name="log.pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Property>
        <!-- 日志路径 -->
        <Property name="log.path">./logs</Property>
    </Properties>
 
    <!-- 输出源配置(对应原Logback的appender) -->
    <Appenders>
        <!-- 控制台输出 -->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="${log.pattern}" charset="UTF-8"/>
        </Console>
 
        <!-- 主日志文件(INFO及以上级别,滚动策略) -->
        <RollingFile name="FILE_MAIN" fileName="${log.path}/${APP_NAME}.log"
                     filePattern="${log.path}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${log.pattern}" charset="UTF-8"/>
            <!-- 滚动策略(大小+时间) -->
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- 保留策略 -->
            <DefaultRolloverStrategy max="30">
                <Delete basePath="${log.path}" maxDepth="1">
                    <IfFileName glob="${APP_NAME}-*.log"/>
                    <IfLastModified age="30d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
 
        <!-- SQL日志文件(DEBUG级别,滚动策略) -->
        <RollingFile name="FILE_SQL" fileName="${log.path}/${APP_NAME}-sql.log"
                     filePattern="${log.path}/${APP_NAME}-sql-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${log.pattern}" charset="UTF-8"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="50MB"/>
            </Policies>
            <DefaultRolloverStrategy max="7">
                <Delete basePath="${log.path}" maxDepth="1">
                    <IfFileName glob="${APP_NAME}-sql-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
 
        <!-- 错误日志文件(仅ERROR级别) -->
        <RollingFile name="FILE_ERROR" fileName="${log.path}/${APP_NAME}-error.log"
                     filePattern="${log.path}/${APP_NAME}-error-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${log.pattern}" charset="UTF-8"/>
            <!-- 仅接受ERROR级别 -->
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="50MB"/>
            </Policies>
            <DefaultRolloverStrategy max="90">
                <Delete basePath="${log.path}" maxDepth="1">
                    <IfFileName glob="${APP_NAME}-error-*.log"/>
                    <IfLastModified age="90d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
 
    <!-- 日志器配置(对应原Logback的logger和root) -->
    <Loggers>
        <!-- Hibernate SQL日志(仅输出到SQL文件) -->
        <Logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
            <AppenderRef ref="FILE_SQL"/>
            <!-- 若需在控制台显示SQL,添加此行:<AppenderRef ref="CONSOLE"/> -->
        </Logger>
 
        <!-- 其他框架日志级别控制 -->
        <Logger name="org.springframework" level="INFO" additivity="false">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="FILE_MAIN"/>
            <AppenderRef ref="FILE_ERROR"/>
        </Logger>
        <Logger name="org.hibernate" level="INFO" additivity="false">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="FILE_MAIN"/>
            <AppenderRef ref="FILE_ERROR"/>
        </Logger>
 
        <!-- 自定义包日志级别(开发环境DEBUG) -->
        <Logger name="org.com.gkhy" level="DEBUG" additivity="false">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="FILE_MAIN"/>
            <AppenderRef ref="FILE_ERROR"/>
        </Logger>
 
        <!-- 根日志(默认INFO级别) -->
        <Root level="INFO">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="FILE_MAIN"/>
            <AppenderRef ref="FILE_ERROR"/>
        </Root>
    </Loggers>
</Configuration>