問題タブ [seq-logging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - メッセージ行にプロパティを含めずに、Seq ログ ステートメントをプロパティで強化します (Serilog を使用)。
Seq で Serilog を使用しており、Seq に表示されるログを独自のプロパティで強化したいと考えています。
次のようなログステートメントを入力すると...
Seqで私は得る...
Site と Activity の値は、Seq で強化されたプロパティとして表示されますが、メッセージ全体にも表示されることに注意してください。
強化されたプロパティを取得した場所をログに記録する方法はありますが、テキスト メッセージ行に値が表示されませんか? 各呼び出しに ThreadId を追加する NuGet パッケージがあることに注意してください。Site プロパティと Activity プロパティを強化された props のリストに含めたいのですが、必ずしもメッセージ行に出力する必要はありません。
これに対する答えには、アプリケーションの理解も必要になる場合があります。
アプリケーションは、さまざまなことを行う複数のアクティビティを生成する Windows サービスです。そのため、Windows サービスは、そこに含まれるさまざまなアクティビティを調整します。スケジュールでは、各アクティビティで「プロセス」を呼び出して、作業を開始します。Process がオーケストレーターによって呼び出されるたびに、上記のようにサイトとアクティビティの値を自動的に含めるために、そのアクティビティによるすべてのログが必要です (さらに多くのプロパティ値と共に、メッセージ行にすべてを出力したくはありません)。
したがって、上記のエントリの代わりに、次のように表示されます... メッセージが「ProcessCycle」とだけ表示されていることに注意してください。
docker - Seq ログを EBS ボリュームに永続化する - ボリュームがデタッチし続ける
AWS EC2 インスタンスで Seq docker イメージを実行しています。
ログを永続ストレージに書き込むために、EBS ボリュームをインスタンスにアタッチし、rexray/ebs プラグインを使用してインスタンス内からマウントしました。
docker plugin install rexray/ebs:latest REXRAY_PREEMPT=true EBS_REGION=eu-central-1a --grant-all-permissions EBS_ACCESSKEY=... EBS_SECRETKEY=...
docker volume create --driver rexray/ebs --name SeqData
次に、そのボリュームを使用するように Seq に指示します。
docker run -d --name seq -e ACCEPT_EULA=Y -v SeqData:/data -p 80:80 -p 5341:5341 datalust/seq:latest
Seq はしばらくの間 (場合によっては数時間、場合によっては数日) 正常に実行されますが、コンテナーが実行されていないことに気付き、AWS コンソールにはボリュームが切り離されたことが示されます。AWS ログは、DetachVolume イベントがインスタンスによって開始されたことを示しています。
AWS コンソールでボリュームを手動で再接続し、コンテナを再起動します。Seq は通常の動作を再開しますが、しばらくすると現象が繰り返されます。
docker ログにはヒントがありません。これは、分離が発生する約 10 分前まで、Seq が通常のアクティビティ (保持、インデックス作成など) を約 5 分ごとにログに記録していることを示しています。
AWS や Docker の経験は限られているので、誰か助けていただければ幸いです。