我面临一个问题,同时试图定制Liferay的日志滚动策略。在portal-log4j-ext.xml文件中,我想:
在门户之上-log4j-ext.xml:
<appender name="PROJECT" class="org.apache.log4j.RollingFileAppender">
<!-- The active file to log to -->
<param name="file" value="@liferay.home@/logs/logging/liferay@spi.id@.%d.log" />
<param name="MaxFileSize" value="5KB"/>
<param name="MaxBackupIndex" value="100"/>
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<!-- Keep one backup file -->
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="@liferay.home@/logs/logging/archive/liferay@spi.id@.%d.log.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="[%d{dd.MM.yyyy HH:mm:ss}{Europe/Paris}] %-5p [%t][%c{1}:%L] %m%n" />
</layout>
</appender>
<root>
<priority value="INFO" />
<appender-ref ref="PROJECT" />
<!--appender-ref ref="CONSOLE" /-->
<!--appender-ref ref="XML_FILE" /-->
<!--<appender-ref ref="TEXT_FILE" />-->
</root>
在这里生成的文件日志:

问题是日期没有附加到生成的文件中,而且TimeBasedRollingPolicy也无法工作。
我使用的是Log4j 1.2
你有什么建议吗?
提前谢谢。
发布于 2019-02-08 09:57:06
重新考虑你的策略
在我写下答案之前:你应该重新考虑你的伐木策略。您将没有基于当前配置的“每日日志文件”,因为可能有多达100个每日日志文件,每个文件的大小为5KB。
因此,在最坏的情况下,您可以有100个包含同一天日志的文件,而另一个n文件丢失了,因为它们会超出您的MaxBackupIndex。
FileAppender
如果存储空间非常有限,则应该将org.apache.log4j.RollingFileAppender与MaxFileSize和MaxBackupIndex一起使用。但是,您不能在这里定义DatePattern。
如果希望将日期添加到日志文件的名称中,则应使用org.apache.log4j.DailyRollingFileAppender。但是,您既不能使用此MaxFileSize定义MaxBackupIndex,也不能使用该FileAppender定义FileAppender,因此您必须创建自己的自定义FileAppender。
RollingPolicy
您的RollingPolicy配置似乎很好。我的猜测是,您必须将apache-log4j-附加依赖项添加到您的项目中,该项目包含RollingPolicy接口及其实现(例如,TimeBasedRollingPolicy)。
发布于 2019-02-21 16:37:26
门户-log4j-ext.xml缺少层次结构中的组件:
Log4j:配置< rollingPolicy < appender,类似于:
<appender class="org.apache.log4j.rolling.RollingFileAppender" name="TEXT_FILE">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
</rollingPolicy>
<layout class="org.apache.log4j.EnhancedPatternLayout">
</layout>
</appender>示例来自:https://www.e-systems.tech/blog/-/blogs/customizing-portal-log4j-xml
第二个细节是,您似乎要创建一个新的附录,您不能在-ext.xml中这样做,至少在重新配置来自.xml的记录器来使用它之前是不能这样做的。实际上,这是原始文件的工作,而不是ext。
https://stackoverflow.com/questions/54584255
复制相似问题