一、maven配置:
在porm.xml中加入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<
dependency
>
<
groupId
>org.apache.logging.log4j</
groupId
>
<
artifactId
>log4j-api</
artifactId
>
<
version
>2.3</
version
>
</
dependency
>
<
dependency
>
<
groupId
>org.apache.logging.log4j</
groupId
>
<
artifactId
>log4j-core</
artifactId
>
<
version
>2.3</
version
>
</
dependency
>
<
dependency
>
<
groupId
>com.lmax</
groupId
>
<
artifactId
>disruptor</
artifactId
>
<
version
>3.3.2</
version
>
</
dependency
>
|
如果不使用异步写入日志,第三个依赖可以不加入。
二、log4j 2.0的配置文件不再支持properties文件,改用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
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!-- 修改status的值为debug,可以查看log4j的装配过程;monitorInterval参数是多长时间重
新加载一遍该配置文件,这样可以在生产环境遭遇bug的时候,进行日志级别调整 -->
<
configuration
status
=
"off"
monitorInterval
=
"60"
>
<
properties
>
<!--日志存储目录-->
<
property
name
=
"LOG_HOME"
>logs</
property
>
<!-- 日志备份目录 -->
<
property
name
=
"BACKUP_HOME"
>logs/backup</
property
>
</
properties
>
<
appenders
>
<!-- 定义控制台输出 -->
<
Console
name
=
"console"
target
=
"SYSTEM_OUT"
follow
=
"true"
>
<
PatternLayout
pattern
=
"%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"
/>
</
Console
>
<!-- 定义文件输出 -->
<
RollingFile
name
=
"file"
fileName
=
"${LOG_HOME}/gvserver.log"
filePattern
=
"${BACKUP_HOME}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"
>
<
PatternLayout
pattern
=
"%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} - %msg%xEx%n"
/>
<
SizeBasedTriggeringPolicy
size
=
"5KB"
/>
</
RollingFile
>
<!--异步写入文件-->
<
Async
name
=
"async"
>
<
AppenderRef
ref
=
"file"
/>
</
Async
>
</
appenders
>
<
loggers
>
<!-- <asyncRoot level="DEBUG">
<appender-ref ref="file"/>
<appender-ref ref="console"/>
</asyncRoot>-->
<
root
level
=
"DEBUG"
>
<
appender-ref
ref
=
"async"
/>
<
appender-ref
ref
=
"console"
/>
</
root
>
</
loggers
>
</
configuration
>
|
三、示例程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package
com.gvsoft.log;
/**
* Created with IntelliJ IDEA.
* ProjectName:gvMsgRouting
* Date: 15/8/14
* Time: 下午6:03
* Desc:
*/
import
org.apache.logging.log4j.LogManager;
import
org.apache.logging.log4j.Logger;
public
class
TestLog {
static
Logger logger = LogManager.getLogger(TestLog.
class
.getName());
public
void
test() {
logger.error(
"this is error log!"
);
logger.info(
"this is info log!"
);
logger.debug(
"this is debuf log!"
);
logger.warn(
"this is warn log!"
);
logger.fatal(
"this is fatal log!"
);
}
public
static
void
main(String arg[]){
TestLog testLog =
new
TestLog();
testLog.test();
}
}
|