zoukankan      html  css  js  c++  java
  • log4j 2的使用

    最近在使用log4j 2,可以在同一个类里面实现不同级别的日志记录到不同的日志文件里面,可以实现根据日期或者文件大小分文件。

    一、log4j 2的maven配置 pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.coderwood</groupId>
        <artifactId>netspider</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>netspider</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <junit.version>4.10</junit.version>
            <log4j2.version>2.5</log4j2.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            
            <dependency>
                <groupId>us.codecraft</groupId>
                <artifactId>webmagic-core</artifactId>
                <version>0.5.3</version>
            </dependency>
            <dependency>
                <groupId>us.codecraft</groupId>
                <artifactId>webmagic-extension</artifactId>
                <version>0.5.3</version>
            </dependency>
        </dependencies>
    </project>

    二、log4j 2配置文件 log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="OFF" monitorInterval="1800">
        <properties>
             <property name="LOG_HOME">D://logs/</property> 
            <!--<property name="LOG_HOME">/root/log</property>-->        
            <property name="FILE_NAME">netspider</property>
            <property name="ROOLINGFILE_NAME">netspiderroll</property>
            <property name="ROOLINGERRORFILE_NAME">netspidererror</property>
            <property name="ROOLINGERRORDOWNFILE_NAME">netspidererrordown</property>
        </properties>
    
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <!-- <ThresholdFilter level="error" onMatch="ACCEPT" onMisMatch="DENY" 
                    /> -->
                <PatternLayout
                    pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            </Console>
    
            <Console name="Console1" target="SYSTEM_OUT">
                <PatternLayout
                    pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            </Console>
    
            <File name="log" fileName="${LOG_HOME}/${FILE_NAME}.log" append="true">
                <PatternLayout
                    pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%class:%line] - %msg%n" />
            </File>
    
            <RollingFile name="RollingFile" fileName="${LOG_HOME}/${ROOLINGFILE_NAME}.log"
                filePattern="${LOG_HOME}/$${date:yyyy-MM}/${ROOLINGFILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">
                <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
                <Policies>
                    <TimeBasedTriggeringPolicy interval="1"
                        modulate="true" />
                    <!-- <SizeBasedTriggeringPolicy size="1MB" /> -->
                </Policies>
            </RollingFile>
    
            <RollingFile name="RollingErrorFile"
                fileName="${LOG_HOME}/${ROOLINGERRORFILE_NAME}.log"
                filePattern="${LOG_HOME}/$${date:yyyy-MM}/${ROOLINGERRORFILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">
                <ThresholdFilter level="error" onMatch="ACCEPT"
                    onMisMatch="DENY" />
                <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
                <Policies>
                    <TimeBasedTriggeringPolicy interval="1"
                        modulate="true" />
                    <!-- <SizeBasedTriggeringPolicy size="1MB" /> -->
                </Policies>
            </RollingFile>
            
            <RollingFile name="RollingErrorDownFile"
                fileName="${LOG_HOME}/${ROOLINGERRORDOWNFILE_NAME}.log"
                filePattern="${LOG_HOME}/$${date:yyyy-MM}/${ROOLINGERRORDOWNFILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">
                <ThresholdFilter level="error" onMatch="DENY"
                    onMisMatch="ACCEPT" />
                <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
                <Policies>
                    <TimeBasedTriggeringPolicy interval="1"
                        modulate="true" />
                    <!-- <SizeBasedTriggeringPolicy size="1MB" /> -->
                </Policies>
            </RollingFile>
    
        </Appenders>
    
        <Loggers>
            <logger name="com.coderwood.netspider" level="trace"
                additivity="false">
                <AppenderRef ref="RollingErrorFile" />
                <AppenderRef ref="RollingErrorDownFile" />
            </logger>
            <Root level="error">
                <AppenderRef ref="Console" />
            </Root>
        </Loggers>
    
    </Configuration>

    三、log4j 2的使用代码 NetSpider.java

    package com.coderwood.netspider;
    
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    public class NetSpider {
        private static Logger logger = LogManager.getLogger(App.class);
    
        public static void main(String[] args) {
            try {
                testLog();
            } catch (Exception e) {
                logger.error(e);
            }
        }
    
        public static void testLog() {
            logger.trace("trace");
            logger.debug("debug");
            logger.info("info");
            logger.warn("warn");
            logger.error("error");
            logger.fatal("fatal");
    
        }
    
    }
  • 相关阅读:
    洛谷 1736 创意吃鱼法
    有多重限制的背包
    洛谷 1417 烹调方案
    2008 noip 传纸条
    环形石子合并 洛谷 1880 && hdu 3506 Monkey Party
    洛谷 1282 多米诺骨牌
    (金明的预算方案)依赖性的背包
    分组背包问题
    混合背包问题
    多重背包问题
  • 原文地址:https://www.cnblogs.com/coderwood/p/5733816.html
Copyright © 2011-2022 走看看