<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="WARN" monitorInterval="60">
<!-- 变量配置 -->
<Properties>
<Property name="appName">healthmanage</Property>
</Properties>
<!--先定义所有的appender-->
<appenders>
<!--这个输出控制台的配置-->
<console name="Console" target="SYSTEM_OUT">
<!--输出日志的格式 输出pattern里面的%l感觉比较必要,应为会打印行号出来-->
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<!--<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>-->
</console>
<RollingFile name="RollingFileInfo" fileName="/acs/log/${appName}.log"
filePattern="/acs/log/${appName}-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS}] [%t][%l] %p - %m%n"/>
<!--何时触发日志清除 滚动日志-->
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<!--到达100MB之后 日志文件会自动再生成一个文件 类似“a-1.log,a-2.log”-->
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy>
<!--删除规则 时间5天 匹配日志文件名 删除-->
<Delete basePath="/acs/log/" maxDepth="1">
<IfFileName glob="${appName}-*.log"/>
<IfLastModified age="5d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!--这个log专门为一个类设置的,以为这个类的日志太多,滚的太快,影响其他日志查看-->
<RollingFile name="SecurityLog" fileName="/acs/log/${appName}_security.log" filePattern="/acs/log/${appName}_security-%d{yyyy-MM-dd}.log">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS}] [%t][%l] %p - %m%n"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/acs/log/" maxDepth="1">
<IfFileName glob="${appName}_security-*.log"/>
<IfLastModified age="2d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</appenders>
<loggers>
<!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
<!--对不同包下面的日志可以指定日志,比如下面spring包里面的warn级别的才会打印 logger的additivity默认是true 会在root的appender里面打印-->
<logger name="org.springframework" level="WARN"/>
<logger name="org.mybatis" level="WARN"/>
<logger name="springfox.documentation" level="WARN"/>
<!--下面两个类的日志太多了,我把他单独放在一个文件里面,这里additivity是false,不会再root定义的logger里面打印,只会在本身指定的logger SecurityLog里面打印-->
<logger name="com.helian.healthmanage.web.aop.AppSecurityInterceptor" level="INFO" additivity="false">
<appender-ref ref="SecurityLog"/>
</logger>
<logger name="com.helian.healthmanage.web.aop.AdminSecurityInterceptor" level="INFO" additivity="false">
<appender-ref ref="SecurityLog"/>
</logger>
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
</root>
</loggers>
</configuration>
log4j2配置实例 单独文件日志在单独文件
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- SpringCloud(第 008 篇)电影微服务,使用 application.yml 配置文件配置 Ribbo...