문제

저 웹 사이트 및 웹 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] 처리되지 않은).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top