Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging LIFERAY DXP中的滚动日志_Logging_Log4j_Liferay_Liferay Dxp - Fatal编程技术网

Logging LIFERAY DXP中的滚动日志

Logging LIFERAY DXP中的滚动日志,logging,log4j,liferay,liferay-dxp,Logging,Log4j,Liferay,Liferay Dxp,我在尝试在Liferay DXP中定制日志滚动策略时遇到了一个问题。 在portal-log4j-ext.xml文件中,我想: 根据最大文件大小创建滚动日志策略,并在文件名末尾附加日期 创建每日滚动日志策略,以创建每日日志文件 压缩 在portal-log4j-ext.xml上方: 问题是日期没有附加到生成的文件中,并且TimeBasedRollingPolicy不起作用 我正在使用log4j1.2 你有什么建议吗 提前感谢。重新考虑你的策略 在我写下答案之前:你应该重新考虑你的日志

我在尝试在Liferay DXP中定制日志滚动策略时遇到了一个问题。 在
portal-log4j-ext.xml文件中,我想:

  • 根据最大文件大小创建滚动日志策略,并在文件名末尾附加日期
  • 创建每日滚动日志策略,以创建每日日志文件 压缩
在portal-log4j-ext.xml上方:

问题是日期没有附加到生成的文件中,并且TimeBasedRollingPolicy不起作用

我正在使用log4j1.2

你有什么建议吗

提前感谢。

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

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

文件追加器 如果您的存储空间非常有限,则应将
org.apache.log4j.RollingFileAppender
MaxFileSize
MaxBackupIndex
一起使用。但是,您不能在此处定义日期模式

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

滚动策略
您的RollingPolicy配置似乎很好。我猜您必须将添加到项目中,该项目包含
RollingPolicy
接口及其实现(例如
TimeBasedRollingPolicy
)。

您的portal-log4j-ext.xml在层次结构中缺少组件:

log4j:configuration


第二个细节是,您似乎正在创建一个新的appender,您无法从-ext.xml执行此操作,至少必须从.xml重新配置记录器以使用它。实际上,这是原始文件的工作,而不是外部文件。

Hi quatax,谢谢您的帮助!对于MaxFileSize和MaxBackupIndex,它只是一个演示值。我将下载apache.log4j-extrasdependendy并检查它是否工作。谢谢
<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>
<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>