このソリューションは、実際にはGuiceとは関係ありませんが、Javaでのロギングクラスの動作に基づいています。
ロガーは階層で作成されるため、ロガーx.y.z
はの子であり、名前が空x.y
の文字列であるルートロガーまでのチェーンのずっと上にあります。各ロガーは、ログレベルなどのプロパティを親から継承します。
したがって、ログレベルをグローバルに設定する(またはハンドラーをグローバルに設定する)には、ルートロガーでログレベルを設定するだけです。
LogManager logManager = LogManager.getLogManager();
Logger rootLogger = logManager.getLogger("");
rootLogger.setLevel(Level.FINEST);
rootLogger.addHandler(new ConsoleHandler());
それが完了すると、注入されたロガーは、ルートロガーと存在する可能性のある親ロガーから派生したプロパティを持ちます。基本の詳細については、LogManagerのドキュメントを参照してください。
config
プロパティも存在します。LogManagerのドキュメントによると:
プロパティ「config」。このプロパティは、任意の構成コードを実行できるようにすることを目的としています。このプロパティは、クラス名の空白またはコンマ区切りのリストを定義します。名前付きクラスごとに新しいインスタンスが作成されます。各クラスのデフォルトコンストラクターは、ロガーレベルの設定、ハンドラーの追加、フィルターの追加など、ロギング構成を更新するために任意のコードを実行する場合があります。
これは、構成クラスを使用することもできたため、問題には複数の解決策があることを意味します。