問題タブ [logstash-logback-encoder]
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.
logback - Flink ロギングの制限: ロギング構成を flink ジョブに渡す方法
ログをlogstashに送信する必要があり、logbackにはlogstashアペンダー( logstash-logback-appender )があるため、logbackをロギングフレームワークとして使用するflinkジョブがあります。アペンダーは正常に動作し、Eclipse などの IDE から flink ジョブを実行すると、logstash でアプリケーション ログを確認できます。ログ構成ファイルlogback.xmlはsrc/main/resourcesに配置され、クラスパスに含まれます。IDE の外部のコマンド ラインからジョブを実行している場合でも、ログは正常に機能します。
ただし、このジョブを flink ダッシュボードを介して flink クラスター (スタンドアロン、使用開始./start-cluster.bat
) にデプロイすると、logback 構成は無視され、ログはlogstashに送信されません。
flink のロギング メカニズムについて詳しく調べたところ、 logback の構成に関するドキュメントに出会いました。このドキュメントに記載されている手順は、 jarlogstash-logback-encoder
とともに lib/ フォルダーに libを追加するなどの追加の手順を使用しても正常に機能します。logback
上記の手順は機能しますが、 flink によって使用されるflink/confフォルダー内のログバック構成が flink セットアップ全体と flink で実行されているすべてのジョブに適用されるため、これには問題があります。ジョブに独自のログ構成を設定することはできません。たとえば。ジョブ 1 はに書き込みfile
、ジョブ 2 は のみに書き込みます。console
logstash
file
ダッシュボードから開始された各 flink ジョブに個別のログ設定を提供するにはどうすればよいですか? ダッシュボードでジョブを送信する際にログ設定を渡す方法はありますか?
クラスパスでログ設定を使用するように flink を強制する方法はありますか?
spring - logback xml で異なるアペンダーに対して同じエンコーダー設定を共有する
net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder
ストックプロバイダー、パターン、およびカスタムプロバイダーの組み合わせを介してログコンテンツを構成するために使用するエンコーダーがあります。コンソール、ファイル、ローリングファイル、ユニットテスト用のカスタムファイルなど、さまざまなアペンダーで同じことが使用されます。まったく同じなので、すべてのアペンダーで同じ構成を繰り返したくないので、異なるアペンダー間で共有する方法があるのだろうか?
例えば
この「インクルード」機能があることは知っていますが、含めるにはルート レベル (つまりappender
) から開始する必要があるようです。encoder
レベルで「含める」方法はありますか?