「アプリケーション ログ メッセージ」をアペンダーに記録し、「セキュリティ ログ メッセージ」を別のアペンダーに記録する必要があるアプリケーションがあります (セキュリティ ログ メッセージはアプリケーション ログに表示されません)。次のようにロガーを設定することを考えていました。
Logger appLogger = Logger.getLogger("app." + myClassName);
Logger securityLogger = Logger.getLogger("security." + myClassName);
そして、私のlog4j構成を次のように設定します:
log4j.logger.app = DEBUG, applicationLogAppender
log4j.additivity.app = false
log4j.logger.security = DEBUG, securityLogAppender
log4j.additivity.security = false
これを行うためにlog4jを構成する最良の方法は何ですか? 私のソリューションは機能し、パッケージ/クラス名の前に「アプリ」を付けることを忘れない限り、開発者は特定のパッケージ/クラスのログを有効または無効にすることができると思います。または「セキュリティ」ですが、これを行うより良い方法があるかどうか疑問に思っていました.
注: このソリューションは、log4j および log4cxx で機能する必要があります。