0

我正在使用 log4j 进行日志记录。我有一个基于码头的模块。我需要每日记录,所以我使用了 DailyRollingFileAppender。问题是我需要日志文件在上午 12:00 滚动,目前它会在滚动之前等待新请求,有没有办法“强制”滚动过程?

4

2 回答 2

0

我对此表示怀疑。日志服务将不得不产生一个等待一整天或依赖于某种计时器服务的线程。记录器非常努力地不产生依赖关系或消耗资源。您的应用程序可以每天记录一条消息以触发翻转吗?您确定要在几天内没有消息的零长度日志文件吗?否则,您可能需要子类化 appender。

于 2012-06-05T11:08:58.933 回答
0

假设您指的是 Jetty 自己的日志,而不是您的 webapp 的日志:您可以使用jetty.logs系统属性覆盖基本​​日志目录。

根据您启动 Jetty 的方式,它可能就像将属性添加到命令行一样简单。例如:

java -jar -Djetty.logs=/var/log/search-service/jetty.system.log start.jar

或者您可以使用 log4j.xml 文件,如下所示:

<appender name="file" class="org.apache.log4j.RollingFileAppender">
    <param name="append" value="true" />
    <param name="maxFileSize" value="10MB" />
    <param name="maxBackupIndex" value="10" />
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="fileNamePattern" value="${jetty.base}/logs/EZDataModeler_%d{yyyy-MM-dd}.log" />
    </rollingPolicy>
    <param name="file" value="${jetty.base}/logs/EZDataModeler_%d.log" />
    <param name="datePattern" value="'-'yyyy-MM-dd'.log'" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" 
          value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n  %-5p %m%n"/>
    </layout>
  </appender>
于 2020-01-02T05:03:00.287 回答