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

时间:2014-09-29 19:53:11

标签: log4net

我有一个处理邮件的服务器应用程序。我们需要为每个消息进程保留一个单独的日志文件。 我们使用了Adam对相关问题的回答: Logging to an individual log file for each individual thread

唯一的问题是,当流程完成时,需要处理存储库。我们打电话给

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

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

有没有办法妥善处理存储库?很抱歉打开一个新问题,我没有足够的代表对答案发表评论。

1 个答案:

答案 0 :(得分:0)

您的存储库中定义的记录器实际上不应该被清除。但是,如果您使用的存储库是Hierarchy(将其强制转换),则有一种方法;只需调用Clear方法即可。

警告提示:只有在您不再需要存储库时才会这样做,文档警告说:

  

此调用将清除内部的所有记录器定义   哈希表。调用此方法将不可避免地弄乱记录器   层次结构。

     

在调用此方法之前,您应该真正知道自己在做什么。

(强调不是我的:))