2012-06-03 1 views
0

여기 내 목표가 무엇인지 설명하여 시작하겠습니다. 프로그램/디버깅을 다시 시작하지 않고 설정 파일을 수정하도록 허용하려고합니다. 지금은 두 가지 방법으로 접근을 시도했습니다, 첫 번째 방법은 단순히 의도 한대로 이제 로거는, 그러나, 나는 수정 작품을 할 때Log4Net에서 app.config 파일 수정을 보지 않았습니다.

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

파일 내의 AssemblyInfo.cs의 맨 아래에 다음 코드를 추가했다 디버깅 중에 수정 한 .config 파일은 사용되지 않습니다.

내 초기 가정은 프로그램이 어떤 이유로 든 실행되는 동안 app.config 파일을 "감시"할 수 없다는 것입니다. 그래서, 나는 외부 설정 파일을 만들고 Log4Net 정보를 그곳에두기로 결정했다. 이렇게하기 위해 app.config 파일에서 Log4Net 정보를 모두 옮겨서 내가 만든 Log4Net.config 파일로 옮겼습니다. 그런 다음 Assemblyinfo.cs 내의 코드를 다음과 같이 수정했습니다.

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

그러나 이제 로거는 시작시 구성 파일을 찾을 수 없다고 말합니다. 그래서, 여기 내가 묻고있는 것이 있습니다.

1) app.config에서 실제로 수정 사항을 볼 수 있다면 잘못 했나요? 프로그램을 실행하는 동안 수정 사항이 눈치 채지 못하고 구현되지 않는 이유는 무엇입니까?

2) 외부 설정 파일이 필요한 경우 Log4Net에서 생성 한 새 설정 파일을 찾을 수없는 이유는 무엇입니까?

이것은 stackoverflow에 대한 나의 첫 번째 질문이며, 둘러 보았지만 내 질문에 직접적으로 답하는 것을 찾을 수 없었다. 도와 주셔서 감사합니다!

+0

AFAIK, 두 방법 모두 작동해야합니다. log4net이 예상대로 작동하지 않을 때 가장 먼저해야 할 일은 log4net의 내부 로깅을 활성화하는 것입니다. http://logging.apache.org/log4net/release/faq.html#internalDebug – sgmoore

답변

1

Visual Studio로 응용 프로그램을 디버깅하는 경우 출력 폴더 (즉, 디버깅 중에 활성화되어있는 파일)의 YourApplication.vshost.exe.config 파일을 수정해야합니다.

+0

Stefan '당신 말이 맞습니다. Visual Studio로 디버깅 할 때 vshost.exe.config 파일을 대신 수정해야합니다. 그것은 나를 위해 일했습니다. –

관련 문제