我正在与 JUL 合作进行日志记录(不,我无法更改)。我开发了一个简单的包装器,我将参数传递给它,它每次都以正确的格式创建 FileHandler,这样我就不必在每个项目中重新创建日志记录。
我的测试应用程序的功能完全符合预期,但是当我将库导入其他项目时,我似乎遇到了一个(到目前为止只有一个)独特错误:每一次,它都会在日志文件的末尾添加一个“.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