在log4net中为每个类实例创建日志的最佳方法是什么?

时间:2011-05-26 09:16:51

标签: c# log4net

我们有几个长寿命的对象,每个对象都在系统中。只有大约5或6,它们是与外部系统的连接。我希望每个实例都有自己的文件,可以登录。

最好的方法是什么?我现在只能看到以编程方式添加记录器作为答案。

更新: 我想避免使用配置文件,因为如果我将一个新连接添加到另一个远程主机,那么我希望它的日志输出转到连接后命名的文件,而不必先在配置文件中进行黑客攻击。如果它是自动完成的话会很好。我不知道也许这可以在配置文件中实现一次,并且您不需要每次都编辑它。

3 个答案:

答案 0 :(得分:1)

我实际上可以看到几种可能性:

  1. 为每个连接将每个日志记录分配给不同的类别,并将每个类别的日志附加到不同的文件。
  2. 按照您的建议以编程方式创建新的记录器。
  3. 使用依赖注入来根据需要注入尽可能多的单独记录器。

答案 1 :(得分:1)

最好的答案是编程记录,我遇到了同样的问题并发现它是唯一的解决方案。

如需更多帮助,请查看此问题(我的) StackOverFlow Question posted by me

我认为你和我的问题是相同的,动态记录器,重新创建记录器,在运行时处理记录器和所有这些东西:)

如果有任何其他问题,请问,我会很乐意提供帮助,因为我已经完成了所有这些:)

答案 2 :(得分:0)

我有一篇文章可能会有所帮助:

http://horth.com/blog/?p=165

这是关于在运行时更改日志文件。您可以做的是将每个实例的文件名传递到log4net文件中。这样,您就可以为类的每个实例创建一个日志文件。

至于你不想使用配置文件的编辑,这个方法解决了这个问题,这样你就可以使用配置文件,但仍然具有你想要的灵活性。