문제
저 웹 사이트 및 웹 API에서 Serilog를 사용하고 있습니다.
이제 WCF 내에서 Serilog를 사용하고 싶습니다.
그러나 WCF에서 LoggerConfiguration을 새로 만들고 로거를 만들 때 로깅이 작동하지 않는 것 같습니다.예 : 아무것도 텍스트 파일에 출력됩니다.
var seriLog = new LoggerConfiguration()
.WriteTo.File(@"C:\Serilogs\myapp.txt")
.CreateLogger();
seriLog.Debug("log message");
.
궁극적으로 WCF 서비스 내에서 SEQ에 쓸 수 있습니다.
누락되었거나 잘못 됐는가?
이 작업을 수행하는 방법에 대한 작업 코드 샘플이 있습니까?
WCF 내에서 Serilog / SEQ 스택을 사용하는 트릭이 있습니까?
해결책
그것은 그것에가는 몇 가지가 있습니다 -
첫째, 여기서는 여기에있는 설정 코드가 한 번만 실행되고, 즉 응용 프로그램 시작시 텍스트 파일을 가리키는 하나의 로거가 정확히 있습니까?로거의 인스턴스만이 파일을 한 번에 사용할 수 있습니다.
다음에 파일에 액세스 할 수있는 권한으로 실행되는 프로세스가 있습니까?
last, 파일이 열려 있습니다.메모장이나 다른 앱에서 잠긴 다른 앱에서?
아이디어가없는이 불꽃이없는 경우 로거를 구성하기 전에 Serilog의 셀프 로그를 설정할 수 있습니다.
SelfLog.Out = Console.Error;
.
이는 VS 디버거에 표시되어야하므로 Serilog가 Catching 및 Exceptions를 억제하는 경우
디버거에서 실행할 수없는 경우 시도하십시오 :
SelfLog.Out = File.OpenText(@"C:\loglog.txt");
.
때로는 "모든 예외에서 break find"가 사용 가능한 디버거 아래에서 앱을 실행하는 것이 좋습니다. 너무 맨 아래로가는 빠른 방법이 될 수 있습니다 (Ctrl-D, E -> CLR 예외 [x] thrown [x] 처리되지 않은).