Domanda

Sto usando Serilog dal mio sito web e API Web tutto buono.

Ora voglio usare Serilog da wcf.

Ma quando ho nuovo su un loggerconfigurazione e crea un logger da WCF, la registrazione non sembra funzionare?Ad esempio, nulla viene emesso al file di testo.

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

seriLog.Debug("log message");
.

Alla fine voglio scrivere su Seq dall'interno del servizio WCF.

Cosa mi manca o sbaglio?

Qualcuno ha alcuni campioni di codice di lavoro di come questo sarebbe fatto?

Ci sono trucchi per utilizzare lo stack Serilog / Seq da WCF?

È stato utile?

Soluzione

Ci sono un paio di cose che vengono in mente -

Innanzitutto, il codice di installazione è qui eseguito solo una volta, cioè all'avvio dell'applicazione, quindi c'è esattamente un logger che punta al file di testo?Solo un'istanza del logger può utilizzare il file alla volta.

Avanti, è il processo in esecuzione con il permesso di accedere al file?

Ultimo, è il file aperto ad es.in Blocco note o un'altra app che potrebbe averlo bloccato?

Se nessuno di questi scatena alcuna idee, è possibile impostare il self-log di Serilog prima di configurare il logger:

SelfLog.Out = Console.Error;
.

Questo dovrebbe essere visualizzato nel debugger vs, quindi se Serilog sta prendendo e sopprendendo le eccezioni dovresti vederle.

Se non riesci ad eseguirlo in un debugger, prova:

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

A volte trovo l'esecuzione dell'app sotto il debugger con "Break su tutte le eccezioni" abilitato può essere un modo rapido per arrivare fino in fondo (Ctrl-D, E -> Eccezioni CLR [x] lanciate, [x] non gestito).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top