当前位置: 首页 > 面试题库 >

如何根据时间而不是Log4j中的大小旋转日志文件?

魏誉
2023-03-14
问题内容

我将Log4j与结合使用,RollingFileAppender以基于大小创建日志轮换。

如何配置它以便在轮换之前一定 时间 记录到每个文件?

例如,使每个日志文件包含一个小时的日志,并在每个小时的顶部轮换显示?

我使用Properties对象(而不是log4j.properties文件)在Java中以编程方式配置Log4j


问题答案:

您可能要使用DailyRollingFileAppender。例如,要每小时滚动一次,可以使用DatePattern为'.'yyyy- MM-dd-HH。对于log4j.properties文件

log4j.appender.myAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myAppender.DatePattern='.'yyyy-MM-dd-HH
...

或针对您的程序化配置:

DailyRollingFileAppender appender = new DailyRollingFileAppender();
appender.setDatePattern("'.'yyyy-MM-dd-HH");

Logger root = Logger.getRootLogger();
root.addAppender(appender);

不幸的是,使用DailyRollingFileAppender意味着您不能限制文件大小-如果在给定的滚动期内有大量日志,这可能会出现问题。



 类似资料:
  • 我正在尝试创建基于不同级别的“不同”附加器,但到目前为止,我找不到一种隔离日志级别的方法。。。。 我需要一种方法,能够土地只有INFO优先排序的日志被追加。因为INFO级别的日志记录也会显示DEBUG标记的日志记录器...这对我没有帮助。 另一件事是,对于“相同”包,我无法定义不同的日志附加器: 在这里,我得到了如下错误:

  • 我正在配置服务器上的记录器,以便每天压缩日志。我还需要确保单个日志文件不会变得太大(比如每个文件10MB)。 这两种方法都不起作用,但首先我想解决文件大小的问题。 这是我的log4j。属性文件: 我们使用log4j1.2。17,现在我添加了同一版本的log4j额外功能。 当我测试日志记录时,它会创建任意大文件。我试着用maximumFileSize和MaxFileSize代替MaxFileSize

  • 问题内容: 我有一个日志文件,其中添加了以下附加程序: 事实是,每次我运行我的应用程序时,其他日志记录信息都会附加到同一日志文件中。每次我该怎么做才能覆盖文件? 问题答案: 使用RollingFileAppender。

  • 我正在用systemd-Jourald来处理小硬结 使用/etc/systemd/journald中的以下配置。形态: 但这种配置似乎并不适用。当我重新启动journald时,我会得到以下条目: 然后/run总是100%命中,日志被截断而不更新。

  • 问题内容: 使用Winston处理node.js的日志时,如何旋转日志。也就是说,如何在应用运行的每一天创建一个新文件? 问题答案: 温斯顿作家和维护者在这里。 每天登录到新文件是当前的一项开放功能请求:https : //github.com/flatiron/winston/issues/10。希望看到有人实施它。 也就是说,还有其他选择: 文件传输接受一个maxsize选项,当超过一定大小(

  • 问题内容: 我正在使用Windows 7和python 2.7。我想将日志文件大小限制为5MB。我的应用程序启动后会写入日志文件,然后该应用程序终止。当我的应用再次启动时,它将写入同一日志文件。因此应用无法持续运行。应用程序启动,处理和终止。 我的记录代码是: 我尝试过 RotatingFileHandler, 但是没有用 那么,如何在python中实施文件大小限制? 问题答案: 丢失并使用Rot