서버

2013-08-06 1 views
0

내 응용 프로그램에 다시로드 구성 파일을 사용하는 방법 : 나는 로그 파일에 기록 할 log4net를 사용 2008 R2 서버

  • .NET 4
  • MVC 3
  • 윈도우 서버를. 내 구성 파일은 다음과 같습니다

    <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

그게가 작동하지 않는 경우

, 당신은 log4net 내부 debuging을 활성화 할 수 있습니다? –

+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> 

임시 디렉터리 로깅을 중지하고 로그 디렉터리에서 시작하지 않으면 권한 문제가있을 수 있습니다. apppool 사용자에게 logs 디렉토리에 대한 액세스 권한을 부여하십시오.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 
</configuration> 

나 : \ 로그 폴더 서버에 이미 만든 다음 C가

<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