【发布时间】:2010-09-18 19:25:10
【问题描述】:
我想在域关闭时记录一些摘要行,但是 log4net 首先挂钩 AppDomain.CurrentDomain.ProcessExit 并在我有机会输出消息之前关闭日志记录。 (并且消息永远不会被记录)
所以我的问题是: 1.有没有办法在log4net之前钩住ProcessExit而不用过多的初始化顺序? (当然不改变我的应用程序的程序类) 2. log4net 是否提供了它在关闭之前调用的任何钩子?
【问题讨论】:
我想在域关闭时记录一些摘要行,但是 log4net 首先挂钩 AppDomain.CurrentDomain.ProcessExit 并在我有机会输出消息之前关闭日志记录。 (并且消息永远不会被记录)
所以我的问题是: 1.有没有办法在log4net之前钩住ProcessExit而不用过多的初始化顺序? (当然不改变我的应用程序的程序类) 2. log4net 是否提供了它在关闭之前调用的任何钩子?
【问题讨论】:
记录器存储库(可通过log4net.LogManager.GetAllRepositories() 访问)有一个事件:ShutdownEvent。这对您没有用处,因为此事件是在 log4net 关闭所有内容之后引发的。
连接到AppDomain.CurrentDomain.ProcessExit 对我来说效果很好。我只需要在初始化 log4net 之前这样做。 (不确定这是否符合“不玩太多初始化顺序”的条件。)
【讨论】: