Question

J'utilise Serilog depuis mon site Web et votre API sur le Web.

Maintenant, je veux utiliser Serilog depuis WCF.

Mais lorsque je nouveau un logerConfiguration et créez un enregistreur à partir de WCF, la journalisation ne semble pas fonctionner?Par exemple, rien n'est émis dans le fichier texte.

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

seriLog.Debug("log message");

En fin de compte, je veux écrire à SEQ de l'intérieur du service WCF.

Qu'est-ce que je manque ou fais-il mal?

Quelqu'un a-t-il des échantillons de code de travail de la manière dont cela serait fait?

Y a-t-il des tours pour utiliser la pile Serilog / SEQ à partir de WCF?

Était-ce utile?

La solution

Il y a quelques choses à cela qui vient à l'esprit -

Premièrement, le code de configuration est-il exécuté ici une seule fois, c'est-à-dire au démarrage de l'application, il existe donc exactement un enregistreur pointant sur le fichier texte?Une seule instance de l'enregistreur peut utiliser le fichier à la fois.

Ensuite, le processus est-il en cours d'exécution avec la permission d'accéder au fichier?

Le dernier est le fichier Open E.G.dans le bloc-notes ou une autre application qui pourrait l'avoir verrouillé?

Si aucune de ces idées ne suscite aucune idée, vous pouvez configurer l'auto-journalisation de Serilog avant de configurer l'enregistreur:

SelfLog.Out = Console.Error;

Cela devrait être montré dans le débogueur de VS, donc si Serilog attrape et supprimant des exceptions que vous devriez les voir.

Si vous ne pouvez pas l'exécuter dans un débogueur, essayez:

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

Parfois, je trouve exécuter l'application sous le débogueur avec "pause sur toutes les exceptions" activé peut être un moyen rapide d'aller au fond de celui-ci (Ctrl-D, E-> CLR Exceptions [x] jetées, [x] Non géré).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top