3

私は自分のウェブサイトとウェブ API 内から Serilog を使用しています。

ここで、WCF 内から Serilog を使用したいと考えています。

しかし、LoggerConfiguration を新しく作成し、WCF 内からロガーを作成すると、ログが機能しないように見えますか? たとえば、テキスト ファイルに何も出力されていません。

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

seriLog.Debug("log message");

最終的には、WCF サービス内から Seq に書き込みたいと考えています。

私は何が欠けているか、間違っていますか?

これがどのように行われるかの実用的なコードサンプルを持っている人はいますか?

WCF 内から Serilog/Seq スタックを使用するための秘訣はありますか?

4

1 に答える 1

1

頭に浮かぶことがいくつかあります-

まず、セットアップ コードは一度だけ、つまりアプリケーションの起動時に実行されるので、テキスト ファイルを指すロガーは 1 つだけですか? 一度にファイルを使用できるのは、ロガーの 1 つのインスタンスだけです。

次に、プロセスはファイルへのアクセス許可で実行されていますか?

最後に、ファイルがロックされている可能性のあるメモ帳や別のアプリなどで開いていますか?

これらのどれにもアイデアが浮かばない場合は、ロガーを構成する前に Serilog の自己ログをセットアップできます。

SelfLog.Out = Console.Error;

これはVSデバッガーに表示されるはずなので、Serilogが例外をキャッチして抑制すると、それらが表示されるはずです。

デバッガーで実行できない場合は、次を試してください。

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

「すべての例外で中断」を有効にしてデバッガーの下でアプリを実行すると、アプリの底に到達するための簡単な方法になる場合があります (Ctrl-D、E -> CLR Exceptions [x] Thrown、[x] Unhandled )。

于 2014-07-30T07:48:23.643 に答える