我的应用程序使用:
我使用log4net
写入日志文件。我的配置文件如下所示:
<configuration>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="C:\Temp\log.txt">
<some settings for log4net...>
</appender>
<log4net>
</configuration>
我想在应用程序运行时从
更改文件值 <file value="C:\Temp\log.txt">
到
<file value="C:\Logs\MyAppLog.txt">
我在计算机上运行应用程序(localhost)时效果很好,但是当我在服务器上运行应用程序时出现问题。我更改了配置,但服务器会记住旧配置。为什么服务器不是每次都加载文件?
答案 0 :(得分:0)
检查您是否:
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
Watch表示log4net将获取配置文件中的更改。您也可以在应用程序配置中配置它。
<appSettings>
<add key="log4net.Config" value="log4net.config"/>
<add key="log4net.Config.Watch" value="True"/>
</appSettings>
如果它停止记录临时目录,并且没有在de logs目录中启动,则可能存在权限问题。让您的apppool用户访问logs目录。
如果不起作用,您可以启用log4net内部调试:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
或:
<configuration>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
...
</configuration>