ロガーを静的に宣言する必要がありますか?通常、ロガーの宣言には2つのタイプがあります。
保護されたログログ=新しいLog4JLogger(aClass.class);
または
プライベート静的ログログ=新しいLog4JLogger(aClass.class);
どちらを使用する必要がありますか?両方の長所と短所は何ですか?
static
クラスごとに1つの参照です。非静的は、インスタンスごとに1つの参照です(+初期化)。したがって、場合によっては、インスタンスが大量にあると、後者がメモリに大きな影響を与えることがあります。頻繁に使用するオブジェクトで非静的を使用しないでください。私は常に静的バージョンを使用しています。(大文字に する必要がありますLOG
)
private static final Log log
は小文字でなければなりません。ロガーは定数ではなく、ロガーは静的な最終オブジェクトです(変更可能)。個人的にはいつも使っていますlogger
。