2012-09-21 1 views
2

우리는 많은 서비스를 실행하는 분산 시스템을 가지고 있습니다. 현재 각 응용 프로그램 인스턴스에 공통 log4net 구성 파일이 제공됩니다. 다양한 응용 프로그램의 사이트 로깅을 수정하려면 지원 및 구현 직원이 지루하고 오류가 발생하기 쉬운 구성 파일을 수정해야합니다.log4net을 .NET 환경에서 app.config 또는 web.config를 처리하는 방식과 비슷한 계층 적 방식으로 구성 할 수 있습니까?

log4net 구성 파일을 .NET이 관리하는 환경 (예 : environment.config, machine.config, app.config)과 병합 할 수 있는지 궁금합니다. & web.config; 기본적으로 트리의 맨 위에서 시작하여 런타임에 하위 수준에서 구성을 찾고 병합합니다.

가능한 경우 우리는 새 appender에 추가 할 수있는 단일 위치를 가질 수 있습니다. 그런 다음 각 응용 프로그램 구성 파일을 수정하여 해당 appender 만 사용 가능하게하십시오.

log4net 구성 예에서이 기능을 사용할 수있는 항목을 찾을 수 없습니다.

가능한 경우 누구에게나 아이디어가 있습니다. 또는 동일한 효과를 얻기 위해 사용될 수있는 대체 접근법 일 수 있습니다.

+0

휴식 서비스를하는 데 도움이 일반적인 부분 XML 파일을

The XML FAQ - 19. How do I include one XML file in another?

희망을 포함 한 부분에 공통 로깅 비트를 넣어 log4net 구성은 모든 설정을 단일 지점에 압축합니다. – Alex

+0

감사합니다 알렉스; 그러나 나는 그 뿌리를 내려 가지 않을 것입니다. 우리의 환경에서 실행 가능한 솔루션으로 만들기 위해 너무 많이 호출 서비스를 잘못 (로컬 또는 원격) 할 수 있습니다. 사용할 수 없다면 로컬 설정을 사용하는 등으로 돌아 가면 혼란스러워집니다. 문제에 대한 입증 된 로컬 아키텍처 솔루션을 기대하고 있습니다. 거기에 하나가 있다면. – Bigtoe

답변

2

Log4Net에 어떤 메커니즘이 있는지 모르지만 XInclude 지시문을 사용하여 Log4Net 구성 파일에 (부분) Xml 파일을 포함 할 수 있습니다.

개별 설정 파일이 자신의 고유을받을 수있는 응용 프로그램 쿼리

+1

가능성 있음. appender와 각 로컬 설정을 지정하는 하나의 파일은 자신의 루트와 그 파일을 필요로합니다. 나는 그것을 조사하고 내가 어떻게 일어나는지 볼 것이다. 그러나 여전히 성배를 바라고 있습니다. – Bigtoe

+0

약간의 문제가 있습니다. 기본 XML 관리는 기본 .NET 프레임 워크에서 Xinclude에 대한 지원을 포함하지 않습니다. 그러나 작동하는 몇 가지 대안이 있습니다. 그래도 파일을 볼 필요가 있습니다. 그래서 당신은 단지 애플리케이션 XML 설정으로 파일을 보게됩니다. XInclude 리더를 사용하도록 lognet에 지시 할 수 없습니다. 클래스가 봉인 된 lognet에서 구현을 재정의 할 수도 없습니다. 마찬가지로 그것은 .NET System.Configuration.ConfigurationSettings.GetConfig를 사용하는데 이는 XM을로드하는 방식을 재정의 할 수 없다는 것을 의미합니다. 그래서 나는 확실히 XInclude 리더를 삽입 할 수 없다. 동정 :( – Bigtoe