1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
为方便阅读,日志记录模板名称;为减少磁盘占用,日志进行压缩。帆软提供日志文件定时压缩功能。
注:每日零点压缩前一天的日志。
注:该效果不支持移动端。
10.0、JAR 包为 2019-05-20 之前,不支持日志文件定时压缩功能。
10.0、JAR 包为 2019-05-20 及之后:
1)若为全新安装的工程:直接支持日志文件定时压缩功能
2)若使用升级工具升级从低版本升级到该版本之后:直接支持日志文件定时压缩功能
3)若使用JAR包替换实现从低版本升级到该版本之后:需要删除%FR_HOME%\webapps\webroot\WEB-INF\config\log4j.properties文件实现日志文件定时压缩功能。
1.3 功能简介
本文主要介绍,对于需要自定义 log4j 配置需求的用户,如何对 log4j配置文件 进行配置,确保触发日志文件定时压缩功能。
2. 下载配置文件
根据版本不同,log4j配置文件不同,请根据工程版本,下载适合自己的基础配置文件。建议在提供的配置文件基础上进行修改。
修改完毕后请将文件存放于%FR_HOME%\webapps\webroot\WEB-INF\config文件夹下。重启报表服务,修改日志级别,系统将触发读取 log4j 配置文件。
报表服务器版本 | 配置文件 |
---|---|
FineReport11.0,且JAR 包为 2021-11-15 及之后 | 点击下载并解压:log4j2.zip |
FineReport11.0,且JAR 包为 2021-11-15 之前 | 点击下载并解压:log4j.zip |
FineReport10.0,且JAR 包为 2019-05-20 及之后 | |
FineReport10.0,且JAR 包为 2019-05-20 之前 | 不支持日志文件定时压缩功能 |
log4j2.xml文件内容如下:
<Configuration status="WARN">
<Appenders>
<!-- quartz日志文件输出,定义了文件路径和归档日志文件的文件名模式-->
<RollingFile name="quartz" fileName="${sys:LOG_HOME}/../logs/quartz/quartz.log" filePattern="${sys:LOG_HOME}/../logs/quartz/quartz.log.%d{yyyy-MM-dd}.gz">
<!-- 日志格式-->
<PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss} %t %p [%c] %m%n"/>
<Policies>
<!-- 基于时间的触发策略,modulate-指示是否应调整间隔以使下一次滚动发生在间隔边界上 interval-滚动间隔,结合filePattern的%d的最小单位生效 -->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
</Policies>
<DefaultRolloverStrategy>
<!-- 滚动删除策略,basePath-扫描要删除的文件的基本路径 maxDepth-扫描目录的最大深度 -->
<Delete basePath="${sys:LOG_HOME}/../logs/quartz/" maxDepth="1">
<!-- 相对于基路径匹配要删除的文件-->
<IfFileName glob="quartz.log.*.gz" />
<!-- 7D-7天,保留7天内的文件-->
<IfLastModified age="7D" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!-- 帆软日志文件输出-->
<RollingFile name="standard" fileName="${sys:LOG_HOME}/../logs/fanruan.log" filePattern="${sys:LOG_HOME}/../logs/fanruan.log.%d{yyyy-MM-dd}.gz">
<!-- %X-MDC,对应日志中输出模板名称的配置-->
<PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss} %t %p [%c] %X{templateName} %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${sys:LOG_HOME}/../logs/" maxDepth="1">
<IfFileName glob="fanruan.log.*.gz" />
<IfLastModified age="180D" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!-- 控制台输出,包含帆软日志文件输出的内容-->
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss} %t %p [%c] %X{templateName} %m%n"/>
</Console>
</Appenders>
<Loggers>
<!-- quartz日志文件输出,定义了级别,且不输出到Root-->
<Logger name="com.fr.third.v2.org.quartz" level="DEBUG" additivity="false">
<AppenderRef ref="quartz"/>
</Logger>
<!-- hibernate框架输出,只定义了级别,默认输出到Root-->
<Logger name="com.fr.third.org.hibernate" level="ERROR"/>
<!-- 根记录器,级别会被代码动态指定-->
<Root level="ERROR">
<AppenderRef ref="standard"/>
<AppenderRef ref="stdout"/>
</Root>
</Loggers>
</Configuration>
3. 修改配置文件
本文将为大家讲解如何修改log4j配置文件中的一些常用文件位置和异常信息。
1)修改fanruan.log的位置
如需修改fanruan.log的位置,可以修改RollingFile标签name=”standard”下fileName的路径,建议保留fanruan.log的文件名。
如需修改fanruan.log压缩文件的存放位置,可以修改filePattern(压缩文件保存格式)和basePath(删除文件的基本路径)
2)修改quartz.log的位置
如需修改quartz.log的位置,可以修改RollingFile标签name=”quartz”下fileName的路径,建议保留quartz.log的文件名。
如需修改quartz.log压缩文件的存放位置,可以修改filePattern(压缩文件保存格式)和basePath(删除文件的基本路径)
3)修改异常跟踪信息的行数
如需修改异常跟踪信息的行数,可以在标签PatternLayout的pattern中增加%ex{num},num是需要记录的行数。
如下图所示,配置记录行数为3
日志中: