首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LIFERAY DXP中的滚动日志

LIFERAY DXP中的滚动日志
EN

Stack Overflow用户
提问于 2019-02-08 00:06:48
回答 2查看 772关注 0票数 1

我面临一个问题,同时试图定制Liferay的日志滚动策略。在portal-log4j-ext.xml文件中,我想:

  • 根据最大文件大小创建滚动日志策略,并将日期附加到文件名的末尾。
  • 创建每日滚动日志策略,该策略使用压缩方式创建每日日志文件。

在门户之上-log4j-ext.xml:

代码语言:javascript
复制
<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

你有什么建议吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-02-08 09:57:06

重新考虑你的策略

在我写下答案之前:你应该重新考虑你的伐木策略。您将没有基于当前配置的“每日日志文件”,因为可能有多达100个每日日志文件,每个文件的大小为5KB。

因此,在最坏的情况下,您可以有100个包含同一天日志的文件,而另一个n文件丢失了,因为它们会超出您的MaxBackupIndex

FileAppender

如果存储空间非常有限,则应该将org.apache.log4j.RollingFileAppenderMaxFileSizeMaxBackupIndex一起使用。但是,您不能在这里定义DatePattern

如果希望将日期添加到日志文件的名称中,则应使用org.apache.log4j.DailyRollingFileAppender。但是,您既不能使用此MaxFileSize定义MaxBackupIndex,也不能使用该FileAppender定义FileAppender,因此您必须创建自己的自定义FileAppender

RollingPolicy

您的RollingPolicy配置似乎很好。我的猜测是,您必须将apache-log4j-附加依赖项添加到您的项目中,该项目包含RollingPolicy接口及其实现(例如,TimeBasedRollingPolicy)。

票数 1
EN

Stack Overflow用户

发布于 2019-02-21 16:37:26

门户-log4j-ext.xml缺少层次结构中的组件:

Log4j:配置< rollingPolicy < appender,类似于:

代码语言:javascript
复制
<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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54584255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档