0
Javaロギングフレームワークのいずれかで、セキュリティ機能が無効になっていない限りログ記録の記録を制限する方法はありますか?セキュリティ機能が無効になっていない限り、Javaログフレームワークでログレコードの記録を制限する方法はありますか?
ユースケース:
- X社は、パッケージ内の
SuperThing
com.x.superthing
- Javaクラス
com.x.superthing.SuperSecretThingy
と呼ばれるJavaソフトウェアは、X社は、いずれかを使用しSuperSecretThingy
からロギングを有効できるようにしたいと考えて重要なIPたくさんの - が含まれています標準Javaロギングフレームワーク(java.util.logging、log4j、logbackなど)この仕事をするために何か特別なことをしなければならないなら、それは大丈夫です。
- X社外のユーザーが
SuperThing
を実行したい場合、SuperSecretThingy
からログを有効にすることはできません。-Dlog4j.configurationFile=...
とログメッセージの一部は機密情報が含まれているため
制約:質問(SuperSecretThingy
)内のクラスでコード、何か特別にコンパイル時の依存関係を持っていなければならないので、ロギングコードちょうど普通のものです。
class SuperSecretThingy
{
final static private Logger logger =
LoggerFactory.getLogger(SuperSecretThingy.class);
// this example uses SLF4J
...
public void foo()
{
logger.info("Entering foo");
do_stuff();
logger.info("Exiting foo");
}
}
a Filter
feature in log4jあります:制御の前に適用することができ、前のセクションで説明したように行われる自動ログレベルのフィルタリング、Log4jのフィルタを提供することに加え
は、いずれかに渡され
LoggerConfigは、LoggerConfigに渡された後、コントロールがLoggerConfigに渡された後、特定のAppenderを呼び出す前、および各Appender上でAppenderを呼び出す前に渡されます。
プログラムでこれを行う方法はありますか?もしそうなら、特定のクラスからのログイベントをフィルタリングすることができます。
https://logging.apache.org/log4j/2.0/manual/(私はあなたの質問にコメントする担当者を持っていないが、それは、[この]のように聞こえますcustomconfig.html)はあなたが望むものです。 – ghenghy