私はログのために JUL を使用しています (いいえ、変更できません)。パラメータを渡す単純なラッパーを開発しました。毎回正しい形式で FileHandler を作成するので、すべてのプロジェクトでログを再作成する必要はありません。
テスト アプリは意図したとおりに機能しますが、ライブラリを他のプロジェクトにインポートすると、1 つ (これまでのところ 1 つだけ) 固有のエラーが発生するようです: 毎回、ログ ファイルの末尾に ".0" が追加されます。 .
競合がなく、ファイルハンドラーが既存のファイルの最後に追加するように構成されている場合でも、これが行われます (これは問題ありません)。さまざまなファイル名で遊んできましたが、最近では単純な「mylog.log」を使用しており、ログファイルは引き続き「mylog.log.0」として出力されます。確認したところ、fileHandler に正しいファイル (「mylog.log」) が渡されていますが、そこにログが記録されていません。
これは、ログ テストでは発生せず、実際に使用したいプロジェクトでのみ発生します。まったく同じパラメーターを使用しても、異なるファイル名が取得されます。
私が見逃しているJULについての癖はありますか?コードはとてもシンプルです。関連コード:
String logFilePath = directory+name; // directory and name are method arguments
Handler newFileHandler;
File dirFile = new File(directory);
if(!dirFile.exists())
{
dirFile.mkdirs();
}
newFileHandler = new FileHandler(logFilePath, true);
newFileHandler.setFormatter(myformatter);
//... etc