每个工程一个log文件,使用logback实现。
一,jar依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<
dependency
>
<
groupId
>ch.qos.logback</
groupId
>
<
artifactId
>logback-classic</
artifactId
>
<
version
>1.2.3</
version
>
</
dependency
>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<
dependency
>
<
groupId
>ch.qos.logback</
groupId
>
<
artifactId
>logback-core</
artifactId
>
<
version
>1.2.3</
version
>
</
dependency
>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-access -->
<
dependency
>
<
groupId
>ch.qos.logback</
groupId
>
<
artifactId
>logback-access</
artifactId
>
<
version
>1.2.3</
version
>
</
dependency
>
|
二,logback.xml文件,放在resource下
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
|
<configuration>
<!-- 控制台 -->
<appender name=
"STDOUT"
class
=
"ch.qos.logback.core.ConsoleAppender"
>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{
36
} - %msg%n</pattern>
</encoder>
</appender>
<appender name=
"FILE"
class
=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<!-- 定义变量 -->
<discriminator>
<Key>fileLogPath</Key>
<DefaultValue>/</DefaultValue>
</discriminator>
<sift>
<!-- 动态生成文件 -->
<appender name=
"FILE-{fileLogPath}"
class
=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>${fileLogPath}</File>
<rollingPolicy
class
=
"ch.qos.logback.core.rolling.FixedWindowRollingPolicy"
>
<FileNamePattern>${fileLogPath}.%i</FileNamePattern>
<MinIndex>
1
</MinIndex>
<MaxIndex>
100
</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class
=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>50MB</MaxFileSize>
</triggeringPolicy>
<layout
class
=
"ch.qos.logback.classic.PatternLayout"
>
<Pattern>%d{ISO8601} %-5level %C{
1
} [%M:%L] [%thread] - %msg%n</Pattern>
</layout>
</appender>
</sift>
</appender>
<root level=
"INFO"
>
<appender-ref ref=
"STDOUT"
/>
<appender-ref ref=
"FILE"
/>
</root>
</configuration>
三,java变量
//此处的变量名和xml保持一致
private
final
static
String FILE_LOG_PATH_KEY =
"fileLogPath"
;
public
static
void
error(Logger logger,String logFilePath,String info,Throwable throwable){
MDC.put(FILE_LOG_PATH_KEY,logFilePath);
logger.error(info,throwable);
MDC.remove(MDC.get(FILE_LOG_PATH_KEY));
}
|
本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/13172906/1979760,如需转载请自行联系原作者