2016-09-28 2 views
1

ServiceStack 4.5를 사용하여 새 프로젝트를 시작합니다. 프로그래밍 방식으로 log4net을 구성 할 수있는 방법이 있습니까? 내가 찾은 문서에서ServiceStack 4.5 프로그래밍 방식으로 log4net 구성

LogManager.LogFactory = new Log4NetFactory(configureLog4Net: true); 

이걸 AppHost 클래스의 생성자에 추가했습니다. 그러나 이것은 App.config 파일에 구성을 저장한다고 가정합니다 (Windows 서비스에서 자체 호스팅을 수행하고 있습니다). 내가 NHibernate에 사용하고 (

나는 여러 로그를 사용하기 때문에
private static void CreateFileAppender(ref Logger bedInventoryLogger, string logFilePath, Level logLevel, int maxFileSizeInMb, bool filterNh) 
    { 
     var filePatternLayout = new PatternLayout 
     { 
      ConversionPattern = "%date; [%thread]; %-5level; %logger; [%type{1}.%method]; - %message%newline" 
     }; 
     filePatternLayout.ActivateOptions(); 
     var bediLogFileAppender = new RollingFileAppender 
     { 
      File = logFilePath, 
      AppendToFile = true, 
      MaximumFileSize = $"{maxFileSizeInMb}MB", 
      MaxSizeRollBackups = 5, 
      RollingStyle = RollingFileAppender.RollingMode.Size, 
      LockingModel = new FileAppender.MinimalLock(), 
      Layout = filePatternLayout, 
      StaticLogFileName = true, 
      Threshold = logLevel 
     }; 
     if (filterNh) 
     { 
      bediLogFileAppender.AddFilter(new LoggerMatchFilter 
      { 
       LoggerToMatch = "NHibernate", 
       AcceptOnMatch = false 
      }); 
      bediLogFileAppender.AddFilter(new LoggerMatchFilter 
      { 
       LoggerToMatch = "NHibernate.SQL", 
       AcceptOnMatch = false 
      }); 
      bediLogFileAppender.AddFilter(new LoggerMatchFilter 
      { 
       LoggerToMatch = "FluentNHibernate", 
       AcceptOnMatch = false 
      }); 
     } 
     bediLogFileAppender.ActivateOptions(); 
     bedInventoryLogger.AddAppender(bediLogFileAppender); 
    } 

가, ETD를 펜더 및 로깅 자 NHibernate를 해제하고 싶었 : 다른 프로젝트에서

나는 싱글을 쓴 다음 구성을 수행 할 Log4Net API를 사용 4 ORM 등) 등 내가 C#에서 XML보다 구성을하는 것이 더 편리하다는 것을 알았습니다.

ServiceStack에 연결하거나 Log4Net을 직접 사용하는 것이 더 좋습니까?

답변

3

ServiceStack Log4Net 어댑터가 방금 어떤 기본적으로 그냥 앞으로이 두 파일 Log4Net에 대한 호출에 그러나 어댑터 클래스가 복사되는 쉽게 수정할 수 있습니다 구성된 Log4Net 인스턴스를 주입하는 것을 허용하지 않습니다 기본 :

관련 문제