在正常的单独XML文件配置中,我放在我的根目录中,我的应用程序可以很好地处理两个appender。
但是,我发现了一种从外部文件配置的简单而有效的方法,这使我可以灵活地为不同的应用程序使用相同的配置文件......
另外一个优点是我不需要对global.asax和assembly进行任何修改。
以下是我添加到web.config
的代码<appSettings>
<add key="log4net.Config" value="C:\\log\Log4Net.config"/>
</appSettings>
此代码假定将配置文件放在我的根目录中。我需要做的就是引用log4net.dll并开始记录。
即使我的AdoNetAppender完全正常工作,我立即在桌面上看到这些消息。 但是我的fileAppenders没有创建任何文件既不将消息记录到现有文件。这种方式只与数据库兼容还是我遗漏了什么?
答案 0 :(得分:1)
您可以将RollingFileAppender的LockingModel设置为MinimalLock,以强制appender为每个日志记录事件打开和关闭文件。不完全有效,并且如果一个应用程序尝试在同一时间尝试登录,则仍有可能无法记录,但如果您的记录频率足够低,则可能就足够了。
更好的解决方案是使用模式字符串作为包含应用程序名称的appender的文件名;这样,不同的应用程序可以使用相同的配置文件,但会写入不同的日志文件。在大多数情况下,“%appdomain”变量将用于此目的(尽管对于Web或ClickOnce应用程序,您必须获得更多创意)。
答案 1 :(得分:0)