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
, 영원히 ...
전체 경로가 작동 중입니다! 고맙습니다! 문제는 조금 더 나아 간다. 편집을 참조하십시오. – Tom