由于业务需要,需要将某个接口的调用日志单独打印到指定的日志文件中,方便后续使用
配置文件修改
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="60">
<Properties>
<Property name="App">third-api</Property>
<Property name="logDir">/home/migu/portal-third-api/logs</Property>
<Property name="splitSize">100 MB</Property>
</Properties>
<Appenders>
<!--查询接口单独打印-->
<RollingFile name="dayunLog" fileName="${logDir}/${App}-"
filePattern="${logDir}/${App}-dayunInfo-%d{yyyy-MM-dd}-%">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm: z} [%thread] %-5level %logger{36} %L %M - %msg%xEx%n"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1, 单位到底是月 天 小时 分钟,根据filePattern配置的日期格式而定,本处的格式为天,则默认为1天-->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!--按大小分-->
<SizeBasedTriggeringPolicy size="${splitSize}"/>
</Policies>
<Filters>
<!-- 只记录info和warn级别信息 -->
<!--<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<!-- 指定每天的最大压缩包个数,默认7个,超过了会覆盖之前的 -->
<DefaultRolloverStrategy max="1000"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info"></root>
<!--将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中。-->
<!-- 自定义logger,用于代码中的日志单独打印 -->
<Logger name="dayunLogger" additivity="true" level="INFO">
<appender-ref ref="dayunLog" level="INFO" />
</Logger>
</Loggers>
</Configuration>
代码中的使用
import .;
import .;
public class MonitorController {
// dayunLogger 为log4j2配置文件中配置的logger的name
public Logger loggerDaYun = ("dayunLogger");
public void test () {
("dayunTest");
}
}