log4j2.xsml配置文件详细

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QWERTY1994/article/details/88549891
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF"  monitorInterval="30">
    <!-- status="OFF",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是OFF -->
    <properties>
        <!--日志数据文件夹-->
        <!--<property name="LOG_HOME">D:\hp\hpLogs</property>-->
        <!--应用目录/logs 下 ,有需要可以自行更改-->
        <property name="APP_NAME">hp</property>
        <!--日志文件夹根目录-->
        <property name="LOG_HOME">${web:rootDir}\alogs</property>
        <property name="FILE_NAME">${APP_NAME}</property>
        <!--输入日志格式化-->
        <property name="PATTERN">[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{3} %L %M - %msg%xEx%n</property>
        <!--分隔保存文件根目录-->
        <property name="LOG_FILE_ROOT_PATH">${LOG_HOME}/$${date:yyyy-MM}/</property>
        <!-- 日志文件最小切割单位 值不做强制要求,建议300MB -->
        <property name="every_file_size">30MB</property>
        <!-- *必须并强制遵守 日志文件的编码 -->
        <property name="log_charset">UTF-8</property>
        <!--最多保存30天以内日志-->
        <property name="save_date">30d</property>
        <!--最多保存日志数量-->
        <property name="save_sum">1000</property>
    </properties>
    <appenders>

        <Console name="Console" target="SYSTEM_OUT">
            <!--只接受程序中 info 级别的日志进行处理-->
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${PATTERN}"/>
        </Console>

        <!--处理DEBUG级别的日志,并把该日志放到${LOG_HOME}/debug.log文件中-->
        <!--打印出DEBUG级别日志,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <!-- filePattern 切割文件的文件名规则 结尾一定要用 %i -->
        <RollingFile name="RollingFileDebug" fileName="${LOG_HOME}/debug.log"  filePattern="${LOG_FILE_ROOT_PATH}debug-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="DEBUG"/>
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${PATTERN}" charset="${log_charset}"/>
            <Policies>
                <!--下面任一条件为真就触发分隔文件并压缩文件-->
                <!--每次服务重启的时候出发-->
                <OnStartupTriggeringPolicy />
                <!--当文件大小超过设置定值就会分隔文件出来-->
                <SizeBasedTriggeringPolicy size="${every_file_size}"/>
                <!--当一天过去了也会分隔文件出来 -->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!-- 最多备份30天以内||日志文件大小达到100GB的日志||文件数量超过十个
      此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <DefaultRolloverStrategy>
                <!--当 debug文件操过30天的文件删除 -->
                <Delete basePath="${LOG_HOME}" maxDepth="3">
                    <IfFileName glob="*/debug-*.log"/>
                    <IfLastModified  age="${save_date}"/>
                    <IfAccumulatedFileSize exceeds="10 GB" />
                    <IfAccumulatedFileCount exceeds="${save_sum}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--处理INFO级别的日志,并把该日志放到${LOG_HOME}/info.log文件中-->
        <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"  filePattern="${LOG_FILE_ROOT_PATH}info-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <!--只接受INFO级别的日志,其余的全部拒绝处理-->
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout
                    pattern="${PATTERN}" charset="${log_charset}"/>
            <Policies>
                <!--下面任一条件为真就触发分隔文件并压缩文件-->
                <!--每次服务重启的时候出发-->
                <OnStartupTriggeringPolicy />
                <!--当文件大小超过设置定值就会分隔文件出来-->
                <SizeBasedTriggeringPolicy size="${every_file_size}"/>
                <!--当一天过去了也会分隔文件出来 -->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!-- 最多备份30天以内||日志文件大小达到100GB的日志||文件数量超过十个
     此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <DefaultRolloverStrategy>
                <!--当 debug文件操过30天的文件删除 -->
                <Delete basePath="${LOG_HOME}" maxDepth="3">
                    <IfFileName glob="*/info-*.log"/>
                    <IfLastModified  age="${save_date}"/>
                    <IfAccumulatedFileSize exceeds="10 GB" />
                    <IfAccumulatedFileCount exceeds="${save_sum}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--处理WARN级别的日志,并把该日志放到${LOG_HOME}/warn.log文件中-->
        <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log" filePattern="${LOG_FILE_ROOT_PATH}warn-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout  pattern="${PATTERN}" charset="${log_charset}"/>
            <Policies>
                <!--下面任一条件为真就触发分隔文件并压缩文件-->
                <!--每次服务重启的时候出发-->
                <OnStartupTriggeringPolicy />
                <!--当文件大小超过设置定值就会分隔文件出来-->
                <SizeBasedTriggeringPolicy size="${every_file_size}"/>
                <!--当一天过去了也会分隔文件出来 -->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!-- 最多备份30天以内||日志文件大小达到100GB的日志||文件数量超过十个
     此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <DefaultRolloverStrategy>
                <!--当 debug文件操过30天的文件删除 -->
                <Delete basePath="${LOG_HOME}" maxDepth="3">
                    <IfFileName glob="*/warn-*.log"/>
                    <IfLastModified  age="${save_date}"/>
                    <IfAccumulatedFileSize exceeds="10 GB" />
                    <IfAccumulatedFileCount exceeds="${save_sum}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--处理error级别的日志,并把该日志放到${LOG_HOME}/error.log文件中-->
        <RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"  filePattern="${LOG_FILE_ROOT_PATH}error-%d{yyyy-MM-dd}-%i.log.gz">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout
                    pattern="${PATTERN}" charset="${log_charset}"/>
            <Policies>
                <!--下面任一条件为真就触发分隔文件并压缩文件-->
                <!--每次服务重启的时候出发-->
                <OnStartupTriggeringPolicy />
                <!--当文件大小超过设置定值就会分隔文件出来-->
                <SizeBasedTriggeringPolicy size="${every_file_size}"/>
                <!--当一天过去了也会分隔文件出来 -->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!-- 最多备份30天以内||日志文件大小达到100GB的日志||文件数量超过十个
     此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <DefaultRolloverStrategy>
                <!--当 debug文件操过30天的文件删除 -->
                <Delete basePath="${LOG_HOME}" maxDepth="3">
                    <IfFileName glob="*/error-*.log"/>
                    <IfLastModified  age="${save_date}"/>
                    <IfAccumulatedFileSize exceeds="10 GB" />
                    <IfAccumulatedFileCount exceeds="${save_sum}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--druid的日志记录追加器-->
        <RollingFile name="druidSqlRollingFile" fileName="${LOG_HOME}/druid-sql.log"  filePattern="${LOG_FILE_ROOT_PATH}druid-sql-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n" charset="${log_charset}"/>
            <Policies>
                <!--下面任一条件为真就触发分隔文件并压缩文件-->
                <!--每次服务重启的时候出发-->
                <OnStartupTriggeringPolicy />
                <!--当文件大小超过设置定值就会分隔文件出来-->
                <SizeBasedTriggeringPolicy size="${every_file_size}"/>
                <!--当一天过去了也会分隔文件出来 -->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!-- 最多备份30天以内||日志文件大小达到100GB的日志||文件数量超过十个
     此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <DefaultRolloverStrategy>
                <!--当 debug文件操过30天的文件删除 -->
                <Delete basePath="${LOG_HOME}" maxDepth="3">
                    <IfFileName glob="*/sql-*.log"/>
                    <IfLastModified  age="${save_date}"/>
                    <IfAccumulatedFileSize exceeds="10 GB" />
                    <IfAccumulatedFileCount exceeds="${save_sum}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </appenders>

    <loggers>
        <!--下面不指定使用哪个日志输出器的话 就会默认调用这个日志输出器-->
        <root level="INFO">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
            <appender-ref ref="RollingFileDebug"/>
        </root>

        <!--记录druid-sql的记录 并使用druidSqlRollingFile日志记录器-->
        <logger name="druid.sql.Statement" level="debug" additivity="false">
            <appender-ref ref="druidSqlRollingFile"/>
        </logger>

        <!--我们自己的代码使用的记录器-->
       <!-- <Logger name="com.hwapu" level="debug" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>
        <Logger name="com.start_new" level="debug" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>-->
      
        <!--log4j2 自带过滤日志 未指定的话就使用root记录器-->
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
        <Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
        <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
        <Logger name="org.crsh" level="warn" />
        <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
        <Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
        <!--过滤spring warn以下日志-->
        <logger name="org.springframework" level="warn"/>
        <!--过滤struts2 warn以下日志-->
        <logger name="com.opensymphony" level="warn"/>
        <logger name="org.thymeleaf" level="warn"/>
    </loggers>
</configuration>

猜你喜欢

转载自blog.csdn.net/QWERTY1994/article/details/88549891