구성 파일을 찾을 위치를 내 응용 프로그램에 알린 다음 응용 프로그램을 시작할 때 XmlConfigurator.Configure()
을 호출하여 외부 구성 파일로 작업하는 log4net을 가지고 있습니다.log4net은 어셈블리 속성을 기반으로 작동하지 않습니다
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
...
<log4net configSource="Log4Net.config" />
이 작동하지만, 지금 내가 이것을 달성하기 위해 어셈블리 특성을 사용할 수 있어야 문서에 따르면, 변화를보고 싶어, 또한 의미하는 나는 더 이상 XmlConfigurator.Configure()
를 호출 할 필요는 없습니다. 그래서, 주요 응용 프로그램에 대한있는 AssemblyInfo.cs이 추가 (또한 프로젝트가 참조) :
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
문제는이 전혀 아무것도하지 않는다. XmlConfigurator.Configure()
에 대한 호출을 제거하면 로깅이 작동하지 않고 로깅이 시작되지 않습니다. 이러한 속성은 차이를 만드는 것처럼 보이지 않습니다. 그래서 나는 파일이 전혀 작동하는 것을 보지 못합니다.
누구든지 조언 할 수 있습니까?
프로젝트가 여러 어셈블리에 걸쳐 있습니까? 또한 설정 파일에서 디버그를 활성화하면'log4net' 디버그 출력을 볼 수 있습니다. – J0HN
이것은 솔루션의 일부인 다른 라이브러리 어셈블리를 참조하는 winforms 앱입니다. 이것들은 모두 속성을 가져야합니까? –
로깅을 수행하는 하나 또는 두 개의 어셈블리에 특성을 추가하여 도움이되는지 확인해도 문제가 없습니다. 확실하게 말할 수는 없지만 동일한 특성 (문자 그대로 * 같은 로그 파일 이름도 포함 함)을 사용했습니다. 그러나 로깅은 해당 특성을 가진 단일 어셈블리에 캡슐화되었습니다. – J0HN