All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ai.flood-xxl-job-admin-web.2.7.8.0.source-code.log4j2-dev.xml Maven / Gradle / Ivy

There is a newer version: 2.7.14.0
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<!--
    status : 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成TRACE时,会看到log4j2内部各种详细输出
    monitorInterval : Log4j能够自动检测修改配置文件和重新配置本身, 设置间隔秒数。此处表示每隔几秒重读一次配置文件.
        日志级别:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
        如果设置为WARN,则低于WARN的信息都不会输出
-->
<configuration status="info" monitorInterval="1800">
     <!-- 参数配置 -->
     <properties>
        <!-- 配置日志文件输出目录 -->
        <property name="LOG_HOME">E://data-platform/log/xxjob-admin</property>
        <!-- info日志路径 -->
        <property name="INFO_LOG_HOME">${LOG_HOME}/info</property>
        <!-- error日志路径 -->
        <property name="ERROR_LOG_HOME">${LOG_HOME}/error</property>
        <!-- 日志输出日志级别-->
        <property name="OUT_LOG_LEVEL">INFO</property>
        <!-- 日志输出文件名 -->
        <property name="FILE_NAME">logger</property>
        <!-- 日志格式化 -->
        <Property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} [job-admin] [%thread] %-5level %X{requestId} %logger - %msg%n</Property>
    </properties>
    
    <!-- 日志配置Appender -->
    <appenders>
        <!-- 输出控制台的配置 -->
        <console name="Console" target="SYSTEM_OUT">
        	<!-- ThresholdFilter:配置的日志过滤
                如果要输出的日志级别在当前级别及以上,则为match,否则走mismatch
                ACCEPT: 执行日志输出;DENY: 不执行日志输出,结束过滤;NEUTRAL: 不执行日志输出,执行下一个过滤器 -->
            <!--<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>-->
            <!-- 日志输出的格式
                %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间,输出到毫秒的时间
                %-5p (level) : 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
                %c (logger) : logger的名称(%logger)
                %t (thread) : 输出当前线程名称
                %m : 日志内容,即 logger.info("message")
                %n : 换行符
                %C : Java类名(%F)
                %L : 行号
                %M : 方法名
                %l : 输出语句所在的行数, 包括类名、方法名、文件名、行数
                hostName : 本地机器名
                hostAddress : 本地ip地址
             -->
            <!--输出日志的格式-->
            <PatternLayout pattern="${PATTERN}"/>
        </console>
        
        <!-- 文件输出配置,文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用 -->
        <!--<File name="log" fileName="log/test.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </File>-->
        
        <!--
            	循环日志文件配置:日志文件大于阀值的时候,就开始写一个新的日志文件
           		这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档
            	fileName    : 指定当前日志文件的位置和文件名称
            	filePattern : 指定当发生Rolling时,文件的转移和重命名规则
            	SizeBasedTriggeringPolicy : 指定当文件体积大于size指定的值时,触发Rolling
            	DefaultRolloverStrategy : 指定最多保存的文件个数
            	TimeBasedTriggeringPolicy : 这个配置需要和filePattern结合使用
                                注意filePattern中配置的文件重命名规则是${FILE_NAME}_%d{yyyy-MM-dd}_%i,最小的时间粒度是dd,即天,
                TimeBasedTriggeringPolicy指定的size是1,结合起来就是每1天生成一个新文件
        -->
        <RollingRandomAccessFile name="RollingFileInfo" fileName="${INFO_LOG_HOME}/${FILE_NAME}-info.log" filePattern="${INFO_LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd-HH}-%i.log.zip">
            <PatternLayout pattern="${PATTERN}"/>
            <!-- <Filters>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="WARN" onMatch="NEUTRAL" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters> -->
            <Policies>
            	  <!-- 每1天更新一次,此处查阅网上和官方示例中,都是以小时出现,我测试是以天为单位。(官方文档中说明按item类型是否是小时,但没找到在哪里设置item类型)另有其他各类型策略,请参阅官方文档 --> 
				  <!-- TimeBasedTriggeringPolicy需要和filePattern配套使用,由于filePattern配置的时间最小粒度是dd天,所以表示每一天新建一个文件保存日志。SizeBasedTriggeringPolicy表示当文件大小大于指定size时,生成新的文件保存日志。 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="10 M"/>
            </Policies>	
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->  
        	<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->  
            <DefaultRolloverStrategy max="100">  
            	<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                <!--7天-->
            	<Delete basePath="${INFO_LOG_HOME}/" maxDepth="2">  
                     <IfFileName glob="*/info-*.log.zip" />
                     <IfLastModified age="168H" />
            	</Delete>  
            </DefaultRolloverStrategy> 
        </RollingRandomAccessFile>
        
        <RollingRandomAccessFile name="RollingFileError" fileName="${ERROR_LOG_HOME}/${FILE_NAME}-error.log" filePattern="${ERROR_LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd-HH}-%i.log.zip">
            <PatternLayout pattern="${PATTERN}"/>
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
            	  <!-- 每1天更新一次,此处查阅网上和官方示例中,都是以小时出现,我测试是以天为单位。(官方文档中说明按item类型是否是小时,但没找到在哪里设置item类型)另有其他各类型策略,请参阅官方文档 --> 
				  <!-- TimeBasedTriggeringPolicy需要和filePattern配套使用,由于filePattern配置的时间最小粒度是dd天,所以表示每一天新建一个文件保存日志。SizeBasedTriggeringPolicy表示当文件大小大于指定size时,生成新的文件保存日志。 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="10 M"/>
            </Policies>	
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->  
        	<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->  
            <DefaultRolloverStrategy max="10">  
            	<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
                    另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                <!--7天-->
            	<Delete basePath="${ERROR_LOG_HOME}/" maxDepth="2">  
                    <IfFileName glob="*/error-*.log.zip" />
	            	<IfLastModified age="168H" />
            	</Delete>  
            </DefaultRolloverStrategy>  
        </RollingRandomAccessFile>
        
        <!-- 异步日志配置 -->
        <Async name="AsyncAll">
        	 <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFileError"/>
            <AppenderRef ref="RollingFileInfo"/>
        </Async>

        <!-- 同步日志配置 -->
        <Async name="SyncAll">
        	 <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFileError"/>
            <AppenderRef ref="RollingFileInfo"/>
        </Async>
        
    </appenders>
    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
        <!--过滤掉spring和hibernate的一些无用的debug信息-->
        <Logger name="org.springframework" level="${OUT_LOG_LEVEL}" includeLocation="true" additivity="false">
			<AppenderRef ref="AsyncAll"/>
		</Logger>
		<Logger name="druid.sql" level="${OUT_LOG_LEVEL}" includeLocation="true" additivity="false">
            <AppenderRef ref="AsyncAll"/>
        </Logger>
		<Logger name="org.mybatis" level="${OUT_LOG_LEVEL}" includeLocation="true" additivity="false">
			<AppenderRef ref="AsyncAll"/>
		</Logger>
		
		<Logger name="com.netflix" level="${OUT_LOG_LEVEL}" includeLocation="true" additivity="false">
			<AppenderRef ref="AsyncAll"/>
		</Logger>
       
       <!--
            Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。
            level:日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
            name:用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点.
               AppenderRef:Logger的子节点,用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自Root.
                        如果指定了,那么会在指定的这个Appender和Root的Appender中都会输出,
                        此时我们可以设置Logger的additivity="false"只在自定义的Appender中进行输出。
        -->
        <Root level="${OUT_LOG_LEVEL}">
            <AppenderRef ref="AsyncAll"/>
        </Root>
    </loggers>

</configuration>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy