28

TopShelf サービス内で Serilog を使用し、コンソールとローリング ファイルにログを記録しています。コンソールでサービスを実行するとメッセージがログファイルに書き込まれますが、サービスをインストールして実行するとログが記録されません。特別に設定する必要があるものはありますか? ファイルは、「.\logs\log-{date}.txt」の下の binaries フォルダーに書き込まれます。

宜しくお願いします

4

7 に答える 7

44

私は非常によく似た問題を抱えていました。私の場合、問題は相対パスにありました。絶対パスを指定するだけでした。今では魅力のように機能します。

WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\log-{Date}.log")

それが役に立てば幸い!

于 2015-05-05T10:11:43.507 に答える
12

私たちは同じ問題を抱えていました.これが私たちが見つけたものです:

  • ログファイルのローリングと Seq への書き込み用に構成された Serilog
  • Ddrable ログが有効になりました。

症状 - ログ ファイルが作成されませんでした - Seq にログが書き込まれません。

@gdoten のコメントによると、ログ ファイル\windows\syswow64 に書き込まれていました (サービスは localservice として実行されていました)。
これらのファイルのパーミッションでは、永続的なスプール ファイルの読み取りが許可されていない可能性があり、ログが Seq に書き込まれない可能性があります。

ローリングログファイルとバッファのパスをハードコードするように修正しました。

于 2016-03-24T05:16:05.013 に答える
4

サービスが実行されているアカウントに、ログ ファイルの場所への書き込み権限がない可能性があります。ログ ファイルの場所をシステムの一時フォルダーに変更して、これが事実であるかどうかを確認してください。

それでも失敗する場合は、Serilog を使用SelfLogして例外情報を取得するのが最善の策です。

于 2014-10-27T21:47:30.973 に答える