我想在域关闭时记录一些摘要行,但log4net首先挂钩AppDomain.CurrentDomain.ProcessExit,并在我有机会输出消息之前关闭日志记录。 (并且永远不会记录消息)
所以我的问题是: 1.有没有办法在log4net之前挂起ProcessExit而不用初始化顺序玩太多? (当然不会更改我的应用程序的Program类) 2. log4net是否提供了在关机之前调用的任何钩子?
答案 0 :(得分:1)
记录器存储库(可通过log4net.LogManager.GetAllRepositories()
访问)具有事件:ShutdownEvent
。这对您没有用,因为在 log4net关闭所有内容之后会引发此事件。
挂钩AppDomain.CurrentDomain.ProcessExit
对我来说工作得很好。我只需要在初始化log4net之前这样做。 (不确定这是否符合“初始化顺序不会太多”。)