2013-08-06 45 views
0

我的应用程序重新加载配置文件如何使用:服务器上

  • .NET 4
  • MVC 3
  • 的Windows Server 2008 R2

我用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">

这真是棒极了当我在我的电脑(本地主机)上运行应用程序时,但在服务器上运行应用程序时发生问题。我更改了配置,但服务器会记住旧的配置。为什么服务器不会每次都加载文件?

+0

是C:\ Logs文件夹在服务器上已经创建? –

+0

是的,在服务器上创建。 – Refael

回答

0

检查,如果您有:

[assembly: log4net.Config.XmlConfigurator(Watch=true)] 

关注意味着log4net的会拿起在配置文件中的变化。您也可以在您的应用程序配置中进行配置。

<appSettings> 
    <add key="log4net.Config" value="log4net.config"/> 
    <add key="log4net.Config.Watch" value="True"/> 
</appSettings> 

如果它停止记录临时目录,并且不在de日志目录中启动,那么您可能有权限问题。让您的apppool用户访问日志目录。

如果不工作,你可以启用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> 
+0

我有这段代码。 – Refael

+0

服务器有权写入。我认为是因为我看到他正在写入一个文件,问题是服务器在任何时候都不读取或加载配置。 – Refael