次のようにインスタンス化する log4j ロガーがあります。
logger = Logger.getLogger("EQUIP(" + id + ")");
そうすることで、 を呼び出すとlogger.info("message")
、次のような出力が得られるはずです (日付の書式設定がいくつかあります)。
13/11/12 15:08:27 INFO: EQUIP(1): message
しかし、私は得ているだけです:
13/11/12 15:08:27 INFO: message
デバッグのためにコンソールにもlogger.getName()
出力していますが、正しい「EQUIP(1)」という名前が返されます。この動作は、このようなロガーがいくつかある私のプログラムで発生する場合がありますが、ほとんどはこの特定のクラスで発生します。私が何か間違ったことをしているのか、この名前がクラス/パッケージ名だけであるべきなのか、それとも何でもよいのか (私のロガーの 80% 以上でうまく動作します) を知りたいです。複数の機器が同時に動作しているため、各機器の ID を印刷する必要があり、これなしでそれらを追跡することはほぼ不可能です。
できればすべてのログ呼び出しを変更してこのプレフィックスを含めるようにリソースを調達せずに、どうすればこれを修正できますか?