如何使用C#代码切换log4net多个日志文件?

时间:2011-12-14 09:22:43

标签: log4net

我正在使用log4net,我想有2个日志,
- BasketballCustomer.log,适用于所有打篮球的客户;
- ChessCustomer.log,适用于所有参加国际象棋的客户 ,对于每个客户,无论他/她是否打篮球或国际象棋,只有在运行时才知道。

我希望单独配置每个日志,关于日志文件名,大小,数量,日志级别等。

另外,我更喜欢这样的设置由C#代码完成,而不是配置文件。

我怎么能这样做?

我尝试在网上搜索,有一些文章,但没有一个符合我的要求 - Log4Net and multiple log files讨论了多个日志文件,但它在运行时没有切换;
- Configure Log4net to write to multiple files类似,但是在配置文件中完成....

请提出建议,非常感谢!

1 个答案:

答案 0 :(得分:2)

您可以通过在log4net.config中使用环境变量,然后通过C#代码设置环境变量的值来实现此目的

所以在你的C#类的某个地方做一些像:

Environment.SetEnvironmentVariable("log_file_name", "MyLogFileName");

然后在使用的log4net.config中,指定环境变量名称的值。语法如下:

<param name="File" value="${log_file_name}".log/>