My log4j2 configuration

maven dependence

  <!-- log4j -->
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.7</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-web -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>2.10.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.lmax/disruptor -->
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.4.1</version>
        </dependency>

Log4j2.xml Configuration

<?xml version="1.0" encoding="UTF-8"?>
<!-- status="OFF",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是OFF -->
<configuration status="OFF">
    <Properties>
        <property name="log_pattern">[%p][%d{yyyy-MM-dd HH:mm}] (%F:%L)[%c]\n%m%n================================================================================================\n\n
        </property>
        <!-- 最好写磁盘路径,我试过写相对路径必须要携程我这样,不然失败-->
        <property name="log_address">/你的文件夹名/src/main/resources/logs</property>
    </Properties>


    <appenders>
        <!-- 用来控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${log_pattern}"/>
        </Console>

        <!--info-->
        <RollingRandomAccessFile name="infoLog"
                                 fileName="${log_address}/info.log"
                                 filePattern="${log_address}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd HH-mm}-%i.log">
            <Filters>
                <!--<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>-->
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout
                    pattern="${log_pattern}" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>

        <!--debug及以上级别输出-->
        <RollingRandomAccessFile name="debugLog"
                                 fileName="${log_address}/debug.log"
                                 filePattern="${log_address}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd HH-mm}-%i.log"
        append = "false">
            <Filters>
                <!--<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>-->
                <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout
                    pattern="${log_pattern}" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>

        <!--error-->
        <RollingRandomAccessFile name="errorLog"
                                 fileName="${log_address}/error.log"
                                 filePattern="${log_address}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd HH-mm}-%i.log">
            <Filters>
                <!--<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>-->
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout
                    pattern="${log_pattern}" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>

    </appenders>
    <loggers>
        <Logger name="com.smbms.dao" level="debug" additivity="false">
            <AppenderRef ref="debugLog"/>
            <AppenderRef ref="infoLog"/>
            <AppenderRef ref="errorLog"/>
        </Logger>
        <Logger name="com.smbms.servlet" level="info" additivity="false">

        </Logger>
        <Root level="trace">
<!--            <AppenderRef ref="Console"/>-->
            <AppenderRef ref="infoLog"/>
            <AppenderRef ref="errorLog"/>
        </Root>
    </loggers>
</configuration>

Configuration of settings in the Mybatis

<setting name="logImpl" value="LOG4J2"/>

In web.xml configuration, not only can not configure output (I was) in the console

<!-- log4j2-begin -->
    <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>
    <filter>
        <filter-name>log4jServletFilter</filter-name>
        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>log4jServletFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
Published 61 original articles · won praise 0 · Views 2160

Guess you like

Origin blog.csdn.net/sabstarb/article/details/105234396