-
Notifications
You must be signed in to change notification settings - Fork 0
/
logback.xml
executable file
·159 lines (137 loc) · 6.61 KB
/
logback.xml
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 配置应用程序名称(上下文) 用于区分不同应用打印的日志 默认 default -->
<property name="APPNAME" value="project-name" />
<contextName>${APPNAME}</contextName>
<!-- 配置默认的日志文件存放目录 ${CATALINA_HOME} 为tomcat 主目录 如果取不到值需要配置 环境变量 -->
<property name="LOG_HOME" value="${CATALINA_HOME}/logs/" />
<!--
appender 负责写日志的组件。 有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。
ConsoleAppender:
把日志添加到控制台,有以下子节点:
<encoder>:对日志进行格式化。(具体参数稍后讲解 )
<target>:字符串 System.out 或者 System.err ,默认 System.out
FileAppender:
把日志添加到文件,有以下子节点:
<file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
<encoder>:对记录事件进行格式化。(具体参数稍后讲解 )
<prudent>:如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。
RollingFileAppender:
滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:
<file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
<encoder>:对记录事件进行格式化。(具体参数稍后讲解 )
<rollingPolicy>:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。
<triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。
<prudent>:当为true时,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。
-->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="logFile" class="ch.qos.logback.core.FileAppender">
<Append>TRUE</Append>
<File>${LOG_HOME}/${APPNAME}logFile.log</File>
<Encoding>UTF-8</Encoding>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="logErrorFile" class="ch.qos.logback.core.FileAppender">
<Append>TRUE</Append>
<File>${LOG_HOME}/${APPNAME}logErrorFile.log</File>
<Encoding>UTF-8</Encoding>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="logDailyFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}/dailyFile/${APPNAME}logDailyFile.log</File>
<Encoding>UTF-8</Encoding>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/dailyFile/${APPNAME}logDailyFile.%d{yyyy-MM-dd}.log
</fileNamePattern>
<MaxHistory>10</MaxHistory>
</rollingPolicy>
</appender>
<appender name="logRollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<File>${LOG_HOME}/rollingFile/${APPNAME}logRollingFile.log</File>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<maxIndex>10</maxIndex>
<FileNamePattern>${LOG_HOME}/rollingFile/${APPNAME}logRollingFile.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>20MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- logger 用来设置某一个包或者具体的某一个类的日志打印级别 -->
<!--
name:
用来指定受此loger约束的某一个包或者具体的某一个类。
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:
是否向上级loger传递打印信息。默认是true。
<loger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。
注意书写的前后顺序,下面会覆盖上面
-->
<logger name="com.cedu" level="ERROR" additivity="false">
<appender-ref ref="Console"/>
<appender-ref ref="logErrorFile" />
</logger>
<logger name="com.cedu" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
</logger>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="Console" />
</logger>
<logger name="org.apache" level="ERROR" additivity="false">
<appender-ref ref="Console" />
</logger>
<logger name="org.springframework.jdbc.core" level="debug"
additivity="false">
<appender-ref ref="Console" />
</logger>
<!--
root也是<loger>元素,但是它是根loger。只有一个level属性,应为已经被命名为"root".
<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。
-->
<root level="ALL">
<appender-ref ref="Console" />
<appender-ref ref="logFile" />
<appender-ref ref="logDailyFile" />
<appender-ref ref="logRollingFile" />
</root>
</configuration>