%property不适用于log4net中的RollingFileAppender

时间:2010-07-30 13:08:44

标签: c# log4net

我一直在Best way to dynamically set an appender file path中建议使用%property {}动态设置文件名,但文件创建为“(nul).log”下面是代码

log4net.GlobalContext.Properties["service"] = _servicename.ToString();
_flatFileLogger = LogManager.GetLogger("FlatFileLogger");
_flatFileLogger.Debug(logData.ToString());

我已在XML文件中声明为

file type="log4net.Util.PatternString" value="C:\My_Log\%property{service}.log"

非常感谢。

2 个答案:

答案 0 :(得分:2)

确保在初始化log4net之前设置属性

答案 1 :(得分:0)

不要混淆记录器和追加器。大多数人每个类使用一个记录器:这样,您的日志消息可以轻松地与您的类相关联。

另一方面,Appenders与程序的结构方式无关。在您的配置中,您可以告诉哪些记录器应该使用哪些appender。这为您提供了极大的灵活性,如果您在代码中直接使用“appenders”,那么您就不会拥有它。

你有没有其他记录器在你发布之前写一个声明?如果是,那么我会假设文件appender已经初始化(名称中带有 null )。