如何在服务器上重新加载配置文件

本文关键字:加载 配置文件 新加载 服务器 | 更新日期: 2023-09-27 18:26:39

我的应用程序使用:

  • .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">

当我在计算机(localhost)上运行该应用程序时,它运行得很好,但当我在服务器上运行应用程序时会出现问题。我更改了配置,但服务器会记住旧的配置。为什么服务器不每次都加载文件?

如何在服务器上重新加载配置文件

检查是否有:

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

监视意味着log4net将获取配置文件中的更改。您也可以在应用程序配置中对此进行配置。

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

如果它停止记录临时目录,而不在de-logs-dir中启动,则可能存在权限问题。授予您的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>