log4net:每次调用创建一个文件



我有一个处理消息的服务器应用程序。我们需要为每个消息进程保留一个单独的日志文件。我们使用了亚当对一个相关问题的回答:为每个单独的线程记录到单独的日志文件

唯一的问题是,当流程完成时,需要处置存储库。我们称

log4net.LogManager.ShutdownRepository(logFileName + "Repository");

当进程结束时,但LogManager仍然引用创建的存储库。因此,每次调用都会添加一个新的存储库,从而增加内存。

是否有适当处置存储库的方法?很抱歉打开了一个新问题,我没有足够的代表对答案发表评论。

存储库中定义的记录器实际上不应该被清理。但是,如果您正在使用的存储库是层次结构,则有一种方法(请务必强制转换);只需调用Clear方法。

注意警告:只有当你不再需要存储库时才这样做,文档警告说:

此调用将从内部清除所有记录器定义hashtable。调用此方法将不可避免地扰乱记录器等级制度

在调用此方法之前,您应该非常清楚自己在做什么。

(强调而非我的:)

相关内容

最新更新