欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

log4j2常用配置及说明

程序员文章站 2022-03-07 10:03:00
...

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.zero.scribe.log4j2plugin">

	<!-- 通用参数设置 -->
    <Properties>
    	<!-- 日志输出格式 -->
        <Property name="pattern_layout">%d %-5p (%F:%L) - %m%n</Property>
        <!-- 日志存放目录 -->
        <Property name="LOG_HOME">/data/weblogs/tomcat_api</Property>
    </Properties>

	<!-- Appenders支持配置多个Appender,支持向不同的目标输送日志,有常见的 Console、RollingFile、File 三种子节点,本例中为console和RollingFile输出 -->
    <Appenders>
    	<!--name: 指定Appender的名称 , 
    		target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT-->
        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${pattern_layout}"/>
        </Console>
		
		<!-- name:同上,
			fileName:输出日志文件的名字(带全路径)
			filePattern:归档日志文件的文件名模式
		 -->
        <RollingRandomAccessFile name="file"
                                 fileName="${LOG_HOME}/web.log"
                                 filePattern="${LOG_HOME}/web.log.%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="${pattern_layout}"/>
            <!-- 指定滚动日志的策略 -->
            <Policies>
            	<!-- 基于时间的滚动策略,按天归档日志文件 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <!-- 基于文件大小的滚动策略,超过30M时归档日志文件 -->
                <SizeBasedTriggeringPolicy size="30MB"/>
            </Policies>
            <!-- 日志保留策略,配置保留30天 -->
            <DefaultRolloverStrategy>
            	<Delete basePath="${LOG_HOME}" maxDepth="1">
                    <IfFileName glob="*/web.log.*.log.gz"/>
                    <IfLastModified age="30d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

    </Appenders>
	
	<!-- Loggers支持配置多个Logger,可引用不同的目标Appender,也可根据业务需求定制特定要求的Appender -->
    <Loggers>
        <Logger name="com.huatech" level="info"/>
        <Root level="warn" includeLocation="true">
            <AppenderRef ref="file"/>
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>
</Configuration>