【log4j】に関する知恵袋
【質問】
Log4jのgetLoggerメソッドの引数にはクラス名を指定しますが、質問があります。例えば、getLoggerメソッドの引数に、誤ったクラス名を指定した場合、どのようなバグとなるでしょうか?TestLog4j.javaではpublic class TestLog4j extend TestLog { protected static Logger log = Logger.getLogger( TestLog4j.class ); (省略)}TestLog5j.javaではpublic class TestLog5j extend TestLog { protected static Logger log = Logger.getLogger( TestLog4j.class ); (省略)}上記のように、TestLog5j.javaにてTestLog5jクラスを指定すべきところ、TestLog4jとしてしまった場合の影響が分からないのです。log4jの知恵袋とは、log4jの知恵袋に考察を加えると、Log4jを使用したことがないので、OCRのソフトの情報処理には、OCRのソフトの情報処理について話していくと、有識者の方にご教授頂きたいです。よろしくお願いします。
【解答】
>クラス名を指定クラス名も指定できますが、サンプルではクラスを指定していますね。>どのようなバグとなるでしょうか?log4jの知恵袋を理解する上で、TestLog5j.classに適用されるべきログのpriorityやappenderが使用されず、OCRのソフトの情報処理の説明をすると、TestLog4j.class に適用されるpriorityやappenderでログが出力されることとなります。TestLog5j、TestLog4jが同じカテゴリなのであれば、ログに差異は出ないかもしれませんが、別のpriorityやappenderを設定したとき、バグになりますね。若し、二つのクラスが同じロガーを使用するのであれば、log4jの知恵袋を紐解くと、クラスを指定するのではなく、カテゴリ名を直接指定してしまったほうが、バグは出なくていいかもしれませんね。OCRのソフトの情報処理であれば、protected static Logger log = Logger.getLogger("カテゴリ名");
