Log4j 2之初体验

来源:互联网 发布:巨人网络客服中心 编辑:程序博客网 时间:2024/05/29 18:34

一、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();
    }
}

0 0
原创粉丝点击