2013-07-30 10 views
0

이것은 간단한 질문 일 수 있습니다. 데이터베이스 추적 수신기에서 databaseInstanceName을 프로그래밍 방식으로 설정할 수있는 방법이 있습니까? 내 응용 프로그램이 서로 다른 데이터베이스와 상호 작용할 때 (connectionString 태그에 다른 DB를 가리키는 3 개의 연결 문자열이 있다고 가정 해 봅시다.) 그래서 예외를 db에 있지만 각각의 데이터베이스에 기록해야합니다. 나는 로깅을 위해 별도의 db를 만들기 위해 지원하지 않습니다.C# 코드에서 Database Trace Listener의 databaseInstanceName을 설정하는 방법은 무엇입니까?

수있는 방법이 있나요? 엔터프라이즈 라이브러리를 구성 할 유창하게 API를 사용하여

답변

0

...

var configurationSourceBuilder = new ConfigurationSourceBuilder(); 

// do other configuration here 

configurationSourceBuilder 
    .ConfigureLogging() 
     .LogToCategoryNamed("Category") 
      .SendTo.Database("Database Trace Listener") 
       .UseDatabase("DatabaseInstance"); 

// or here 

var configurationSource = new DictionaryConfigurationSource(); 
configurationSourceBuilder.UpdateConfigurationWithReplace(configurationSource); 
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configurationSource); 

세 연결 문자열을 가지고있는 이유는 프로그램이 세 가지 다른 환경에서 실행을 지원한다는 것이다 경우 (개발/테스트/생산?) 더 나은 옵션은 단일 연결 문자열을 대신 가질 수 있습니다. 그런 다음 모든 환경에 대해 코드가 동일하도록 각 환경에 맞게 사용자 정의 된 구성 파일을 배포하십시오.

+0

헤이 @ 팀의 B. 나는 위의 코드에 .WithOptions.SetAsDefaultCategory()를 추가하며 일하기 시작했다. 고마워 .-) –