Pregunta

Estoy usando Serilog desde dentro de mi sitio web y API web todo bien.

Ahora quiero usar SeriLog desde WCF.

¡Pero cuando está nuevo en una concentración de registrador y cree un registrador desde dentro de WCF, el registro no parece funcionar?Por ejemplo, nada se está emitiendo en el archivo de texto.

var seriLog = new LoggerConfiguration()
    .WriteTo.File(@"C:\Serilogs\myapp.txt")
    .CreateLogger();

seriLog.Debug("log message");

En última instancia, quiero escribir en SEC desde el servicio WCF.

¿Qué estoy perdiendo o haciendo mal?

¿Alguien tiene algunas muestras de código de trabajo de cómo se haría esto?

¿Hay trucos para usar la pila SeriLOG / SEQ desde WCF?

¿Fue útil?

Solución

Hay un par de cosas que vienen a la mente:

Primero, ¿se está ejecutando el código de configuración aquí solo una vez, es decir, en la puesta en marcha de la aplicación, por lo que existe exactamente un registrador que señala el archivo de texto?Solo una instancia del registrador puede usar el archivo a la vez.

A continuación, ¿se está ejecutando el proceso con permiso para acceder al archivo?

Último, es el archivo abierto por ejemplo.En la libreta u otra aplicación que podría tenerla bloqueada?

Si ninguno de estos suma alguna idea, puede configurar el auto-registro de Serilog antes de configurar el registrador:

SelfLog.Out = Console.Error;

Esto debería mostrarse en el depurador VS, por lo que si la captura y suprime de SeriLOG, las excepciones deberías verlas.

Si no puede ejecutarlo en un depurador, intente:

SelfLog.Out = File.OpenText(@"C:\loglog.txt");

A veces, encuentro ejecutar la aplicación en el depurador con "Break On TODAS las excepciones" habilitadas puede ser una forma rápida de llegar a la parte inferior, también (CTRL-D, E -> CLR excepciones [x] lanzadas, [x] UNHANGLED).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top