logback日志配置模板

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
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<!-- 常量定义start -->
<!-- 默认日志输出格式-->
<property name="HOST_NAME" value="Project_Name"/>
<property name="DEFAULT_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} ** ${HOST_NAME} ** [%thread] ** %level ** [%logger] ** - %file:%line ** [%method] - ** %msg%n"/>
<property name="MAX_HISTORY" value="30"/>
<property name="ASYNC_QUEUE_SIZE" value="1024"/>
<property name="DEFAULT_CHARSET" value="UTF-8"/>
<!-- 常量定义end -->

<!-- 默认日志的console appender,本地使用的日志 -->
<appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
<encoder>
<pattern>${DEFAULT_PATTERN}</pattern>
<charset>${DEFAULT_CHARSET}</charset>
</encoder>
</appender>
<appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ROLLING_FILE_DEFAULT">
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>E:/logs/${HOST_NAME}/${HOST_NAME}-%d{yyyyMMdd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${DEFAULT_PATTERN}</pattern>
<charset>${DEFAULT_CHARSET}</charset>
</encoder>
</appender>
<springProfile name="!local">
<!-- 服务器上使用的appender start -->
<!-- 默认的file appender,按天切分日志 -->
<appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ROLLING_FILE_DEFAULT">
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/home/logs/${HOSTNAME}/${HOSTNAME}-%d{yyyyMMdd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${DEFAULT_PATTERN}</pattern>
<charset>${DEFAULT_CHARSET}</charset>
</encoder>
</appender>

<!-- 错误日志,按天切分 -->
<appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ROLLING_FILE_ERROR">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/home/logs/${HOSTNAME}/${HOSTNAME}_error-%d{yyyyMMdd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${DEFAULT_PATTERN}</pattern>
<charset>${DEFAULT_CHARSET}</charset>
</encoder>
</appender>

<appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ROLLING_FILE_DEFAULT">
<!-- 如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>-1</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>2048</queueSize>
<includeCallerData>true</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="ROLLING_FILE_DEFAULT"/>
</appender>

<appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ROLLING_FILE_ERROR">
<!-- 如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>-1</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>2048</queueSize>
<includeCallerData>true</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="ROLLING_FILE_ERROR"/>
</appender>

</springProfile>

<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLING_FILE_DEFAULT"/>
</root>

</configuration>