TopShelf サービス内で Serilog を使用し、コンソールとローリング ファイルにログを記録しています。コンソールでサービスを実行するとメッセージがログファイルに書き込まれますが、サービスをインストールして実行するとログが記録されません。特別に設定する必要があるものはありますか? ファイルは、「.\logs\log-{date}.txt」の下の binaries フォルダーに書き込まれます。
宜しくお願いします
TopShelf サービス内で Serilog を使用し、コンソールとローリング ファイルにログを記録しています。コンソールでサービスを実行するとメッセージがログファイルに書き込まれますが、サービスをインストールして実行するとログが記録されません。特別に設定する必要があるものはありますか? ファイルは、「.\logs\log-{date}.txt」の下の binaries フォルダーに書き込まれます。
宜しくお願いします
私は非常によく似た問題を抱えていました。私の場合、問題は相対パスにありました。絶対パスを指定するだけでした。今では魅力のように機能します。
WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\log-{Date}.log")
それが役に立てば幸い!
私たちは同じ問題を抱えていました.これが私たちが見つけたものです:
症状 - ログ ファイルが作成されませんでした - Seq にログが書き込まれません。
@gdoten のコメントによると、ログ ファイルは\windows\syswow64 に書き込まれていました (サービスは localservice として実行されていました)。
これらのファイルのパーミッションでは、永続的なスプール ファイルの読み取りが許可されていない可能性があり、ログが Seq に書き込まれない可能性があります。
ローリングログファイルとバッファのパスをハードコードするように修正しました。
サービスが実行されているアカウントに、ログ ファイルの場所への書き込み権限がない可能性があります。ログ ファイルの場所をシステムの一時フォルダーに変更して、これが事実であるかどうかを確認してください。
それでも失敗する場合は、Serilog を使用SelfLog
して例外情報を取得するのが最善の策です。