Log4net - 如何知道文件何时滚动?

发布于 2024-08-21 04:12:34 字数 200 浏览 4 评论 0原文

我有一个由 log4net 创建的日志文件,该文件每小时都会更改。 有没有办法知道滚动何时发生? 就像 log4net 库中的一个事件一样,我可以绑定到该事件,并在触发该事件时执行操作? 我不是在寻找代码示例,只是想知道此事件是否存在,以及在这种情况下他的名字。

提前致谢 !

PS:时间可以在我的应用程序中配置,所以我不能简单地使用计时器......

I have a log file created by log4net which changes every hour.
Is there a way to know when this roll occurs?
Like an event in the log4net lib to which I could bind, and perform an action when this event is fired ?
I'm not looking for code samples, just to know if this event exists, and in that case his name.

Thanks in advance !

PS: the time is configurable in my app, so I can't simply use a timer...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最冷一天 2024-08-28 04:12:35

您需要创建一个覆盖 RollingFileAppender 的类。

虽然无法覆盖滚动时调用的大多数方法,但虚拟的一个是 WriteFooterAndCloseWriter()

确保您在覆盖中首先调用基本方法,否则文件仍会被锁定。

EventHandler<EventArgs> LogRolledOver;

protected override void WriteFooterAndCloseWriter()
        {
            base.WriteFooterAndCloseWriter();
            LogRolledOver?.Invoke(this, EventArgs.Empty);
        }

You need to create a class overriding RollingFileAppender

While most of the methods called on rollover cannot be overridden, one that is virtual is WriteFooterAndCloseWriter()

Make sure you call the base method first in your override, otherwise the file will still be locked.

EventHandler<EventArgs> LogRolledOver;

protected override void WriteFooterAndCloseWriter()
        {
            base.WriteFooterAndCloseWriter();
            LogRolledOver?.Invoke(this, EventArgs.Empty);
        }
情何以堪。 2024-08-28 04:12:34

我猜你正在使用 RollingFileAppender。
在这种情况下,您需要使用自己的继承自 RollingFileAppender 的附加程序并覆盖 RollOverRenameFiles 来执行您的逻辑以及原始实现。
RollOverTime 就是时间。由于这些受到保护,您需要使用继承创建自己的实现。
有关详细信息,请参阅 RollingFileAppender 文档。

I guess you are using RollingFileAppender.
In this case you would need to use your own appender inheriting from RollingFileAppender and overwrite RollOverRenameFiles to do your logic plus the original implementation.
RollOverTime would be the time. As these are protected, you need to create your own implementation using inheritance.
See RollingFileAppender documentation for the details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文