问题描述
|
在系统中,我们有几个寿命很长的对象,每个对象都属于同一类。只有大约5或6,它们是与外部系统的连接。我希望每个实例都具有自己的文件,可以登录。
做这个的最好方式是什么?我现在只能看到以编程方式添加记录器作为答案。
更新:
我想避免使用配置文件,因为如果我将新的连接添加到其他远程主机,那么我希望其日志输出转到以该连接命名的文件,而不必首先修改配置文件。如果它是自动完成的,那就太好了。我不知道这可能一次关闭就可以在配置文件中实现,而您不必每次都对其进行编辑。
解决方法
最好的答案是程序化日志记录,我遇到了同样的问题,并发现它是唯一的解决方案。
如需更多帮助,请查看此问题(我的)
我发布的StackOverFlow问题
我的事情是你和我的问题是相同的,动态记录器,重新创建记录器,在运行时处置记录器以及所有这些东西:)
如果还有其他问题,请提出来,因为我已经完成了所有这些工作,所以很高兴为您提供帮助:)
,我实际上可以看到几种可能性:
将每个日志记录分配给每个连接的不同类别,并将每个类别的日志附加到不同的文件。
根据您的建议以编程方式创建新的记录器。
使用依赖项注入可以根据需要注入尽可能多的独立记录器。
,我有一篇文章可能会有所帮助:
http://horth.com/blog/?p=165
这是关于在运行时更改日志文件。您可以做的是将每个实例的文件名传递到log4net文件中。这样,您可以为类的每个实例创建一个日志文件。
至于您不想使用配置文件的编辑,此方法可以解决该问题,以便您可以使用配置文件,但仍具有所需的灵活性。