java logger单文件多类
我有三个类,我想将日志添加到一个共享的单个文件中。 所以每个类的构造函数都有一个java logger单文件多类,java,logging,filehandler,Java,Logging,Filehandler,我有三个类,我想将日志添加到一个共享的单个文件中。 所以每个类的构造函数都有一个 fh = new FileHandler("log.txt", true); LOGGER_A.addHandler(fh); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); } catch (IOException ex
fh = new FileHandler("log.txt", true);
LOGGER_A.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
}
catch (IOException ex) {
}
fh = new FileHandler("log.txt", true);
LOGGER_B.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
}
catch (IOException ex) {
}
当我运行第二个构造函数时,它会创建一个名为“log.txt.1”的新文件。
如何避免这种情况,我想对所有类使用log.txt文件。我认为您在这里提出的问题实际上是一个特性 从 对于旋转的文件集,当每个文件达到给定的大小限制时,它将关闭、旋转并打开一个新文件。通过将“0”、“1”、“2”等添加到基本文件名中,依次命名较旧的文件
因此,在我看来,您所要做的就是更改日志文件的限制大小:)将相同的FileHandler对象添加到两个记录器中
FileHandler将尝试锁定文件名,以便其他FileHandler不能使用相同的文件。如果FileHandler无法获得锁,它会在文件名的末尾追加递增的数字,直到获得文件的唯一锁为止。由于您的第一个FileHandler已在log.txt上拥有锁,因此第二个FileHandler无法获得相同的锁。请不要忘记在FileHandler登录后关闭该文件 使用FileHandler类中的close方法: