|
プロジェクト名: LogLevelSwitch (ランタイム動的ログ レベル スイッチ)。 プロジェクトのアドレスです。通りかかったらお気軽に星を付けてください :) https://github.com/saigu/LogLevelSwitch. 1. LogLevelSwitch が必要な理由は何ですか?ビジネスが拡大し続けるにつれて、各オンライン障害を迅速に特定することが開発チームにとって大きな課題となります。 重要なビジネスロジックを出力するためにログを使用することは、問題を特定するための効果的な方法の一つです。しかし、過剰なログ記録はシステムに余分なオーバーヘッドをもたらし、極端な場合にはシステムクラッシュにつながる可能性があります。 したがって、パフォーマンスと迅速な障害箇所のバランスをとるためには、より多くのログ情報を出力してオンラインの問題をトラブルシューティングしたり、ログの印刷によるパフォーマンスの消費を削減したりするために、ログ レベルをリアルタイムで調整できる必要があります。 上記のような背景から、LogLevelSwitch が誕生しました。 LogLevleSwitch はミドルウェアとしてアプリケーションに組み込まれており、構成センターのホット アップデート機能に基づいて、アプリケーションが実行時にログ レベルを動的に調整できるようにします。 2. 機能特性互換性: Log4j、Log4j2、Logback などをサポートします。 スケーラビリティ:ローカル設定ファイルに基づくデフォルトの設定変更方法を使用できます(ローカルテストおよび学習目的のみ)。本番環境では、ホットアップデートを実現するために、SPI経由で独自の設定センターに接続することを「強く推奨」します。 使いやすさ:統合が簡単で、優れた結果が得られ、わずか 5 分で使い始めることができます。 3. 基本アーキテクチャLogLevelSwitch を Application クラスにインポートします。 LogLevelSwitch は、LogContext と SwitchContext という 2 つのコア コンポーネントで構成されています。
4. クイックスタート言うまでもなく、ぜひ試してみましょう! (1)典型的なSpringプロジェクトたった3つのステップで完了します。 ステップ 1:アプリケーションの pom ファイルに依存関係を追加します。 <依存関係> ステップ 2:構成 Bean を構築します。 @構成 ステップ 3:構成センターにアクセスします。 構成センターの SPI 実装を宣言します。
実装 1:プロジェクトに組み込まれた LocalFile 構成センター。 独自の構成センターがまだない場合は、組み込みのローカル構成ファイル ベースのローカル テストおよび学習ツールを使用します。 実装クラス名は次のとおりです。 io .github .saigu .log .level .sw .listener .LocalFileListener なお、実稼働環境では、ホット アップデートを実現するために、「実装 2」を介して独自の構成センターに接続することを強くお勧めします。 リソース ディレクトリに LocalSwitch.json という名前の新しいファイルを作成します。 次に、スイッチの設定を入力します。 {実装 2: SPI 拡張構成をカスタマイズし、独自の構成センターに接続します。 すでに独自の構成センターをお持ちの場合は、SPI 経由で構成を拡張し、独自の構成センターに接続できます。 「実装クラス名」は、独自の実装クラス名です。 (2)Spring Bootプロジェクト2段階アクセス。 ステップ 1:アプリケーションの pom ファイルに依存関係を追加します。 <依存関係> ステップ 2:構成センターにアクセスします。 「方法1」と同じです。 5. キー設定SwitchContext は重要な構成です。 参考例: {6. 注意事項ログの使用を標準化し、フォールバック スイッチの効果に影響を与えないようにするために、システムは初期化中にプロジェクトが依存するログ フレームワークの実装をチェックします。 ログにプロンプトが表示された場合は、次の点に注意してください... 「複数のログ記録フレームワークが存在します。1 つだけ保持することをお勧めします。そうしないと、ログ記録の低下スイッチが機能しません。」 これは、アプリケーションで複数のログ記録フレームワークの実装が検出されたことを示します。 冗長なログ記録フレームワークを pom.xml ファイルから削除し、単一のログ記録フレームワークが使用されるようにすることをお勧めします。 |