2012-09-10 3 views
2

log4net 및 elmah 작동을 원합니다.ServiceStack 로깅 설정

public class AppHost : AppHostBase { 
    //Tell ServiceStack the name and where to find your web services 
    public AppHost() : base("Backbone.js TODO", typeof(TodoService).Assembly) { } 

    public override void Configure(Funq.Container container) { 
     //... 
     //Log4Net 1.2.11 
     log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config")); 
     container.Register(x => new Log4NetFactory(true)); 
     //Elmah 
     container.Register(x => new ElmahLogFactory(container.Resolve<Log4NetFactory>())); 
     LogManager.LogFactory = container.Resolve<ElmahLogFactory>(); 
     container.Register<ILog>(x => LogManager.GetLogger(GetType())); 
     //... 
    } 

<?xml version="1.0" encoding="utf-8" ?> 
    <log4net debug="true"> 
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender"> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%method %-5level - %message%newline"/> 
    </layout> 
    </appender> 
    <root> 
    <level value="DEBUG"/> 
    <appender-ref ref="TraceAppender"/> 
    </root> 
</log4net> 

로거가 필요합니다 그럼 어디든지 현재 단지 콘솔 로거 Log4net.config, ... :

나는 AppHost.cs 함께 코드를 넣어 시도
ILog Logger {get; set;} //injected by ioc 
//... 
Logger.Info("Print something"); 

Logger.Info("...."); 라인은 오류없이 호출되지만 Log4Net도 Elmah도 위의 코드에서 출력을 인쇄하지 않습니다. ServiceStack으로 log4net 또는 elmah를 설정 한 경험이 있다면, 내가 잘못한 점을 지적 해 주시겠습니까?


편집이

전체 경로로에서는 FileInfo를 변경, 그것은 스테판 Egli로 일했다 제안!

또는 속성 상자

에서 프로젝트에 log4net.config XML 파일을 클릭 - 할 것

역시 "출력에 복사> 최신 버전 인 경우 복사". 웹 응용 프로그램이 잠시 유휴 상태 종료 자체에 갔다 것 같다

Auto-attach to process '[11308] w3wp.exe' on machine 'Desktop' succeeded. 
//... printing info now ... 
Backbone.Todos.AppHost: Info INFO - TodoService OnGet 
//... but then after a coffee break ... 
log4net: Hierarchy: Shutdown called on Hierarchy [log4net-default-repository] 
// ... Oops, no longer printing any log ... 

: 최대

그런 다음,이 같은 온다. 그런 다음 log4net 웹 애플 리케이션을 클릭하면 다시 시작 실패 ... 어떤 생각이 이것을 방지하기 위해? 행복 NLog로 전환 EDIT 2


, 영원히 ...

답변

4

ELMAH는 예외 로깅, 그래서 당신은 무엇을 게시 나는에 따라 ELMAH 로그에 아무것도 볼 기대하지 않을 것이다 지금까지. Log4net에서 구성 파일을 찾을 수 없습니다 : 전체 경로를 사용하여 문제가 해결되는지 확인하십시오. 그렇다면 올바른 경로를 동적으로 얻는 방법을 찾아야합니다.

+0

전체 경로가 작동 중입니다! 고맙습니다! 문제는 조금 더 나아 간다. 편집을 참조하십시오. – Tom