【问题标题】:log4net - how to log a summary just before the logging system shutdownlog4net - 如何在日志系统关闭之前记录摘要
【发布时间】:2010-09-18 19:25:10
【问题描述】:

我想在域关闭时记录一些摘要行,但是 log4net 首先挂钩 AppDomain.CurrentDomain.ProcessExit 并在我有机会输出消息之前关闭日志记录。 (并且消息永远不会被记录)

所以我的问题是: 1.有没有办法在log4net之前钩住ProcessExit而不用过多的初始化顺序? (当然不改变我的应用程序的程序类) 2. log4net 是否提供了它在关闭之前调用的任何钩子?

【问题讨论】:

    标签: .net log4net


    【解决方案1】:

    记录器存储库(可通过log4net.LogManager.GetAllRepositories() 访问)有一个事件:ShutdownEvent。这对您没有用处,因为此事件是在 log4net 关闭所有内容之后引发的。

    连接到AppDomain.CurrentDomain.ProcessExit 对我来说效果很好。我只需要在初始化 log4net 之前这样做。 (不确定这是否符合“不玩太多初始化顺序”的条件。)

    【讨论】:

    • 是的,顺序肯定有问题。不仅主程序集将 log4net 初始化为第一件事(显然),而且许多依赖项也这样做。在 log4net 本身之前初始化一些记录到 log4net 的东西看起来不合逻辑,所有这一切都是因为无法控制事件委托的顺序。嗯……
    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2014-10-24
    相关资源
    最近更新 更多