仅部分考虑Java日志记录配置
我遇到了一个问题,我试图使用打包机交付一个项目,以简化部署过程。仅部分考虑Java日志记录配置,java,logging,classpath,classloader,Java,Logging,Classpath,Classloader,我遇到了一个问题,我试图使用打包机交付一个项目,以简化部署过程。 没有打包,一切都可以正常工作,日志配置也可以完美加载,但在打包中,只应用了部分配置 下面是我使用的logging.properties: handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler .level= INFO java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.c
没有打包,一切都可以正常工作,日志配置也可以完美加载,但在打包中,只应用了部分配置 下面是我使用的logging.properties:
handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.csv
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = my.package.logging.Formatter
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = my.package.logging.Formatter
在我的主要课程中,我是如何加载它的:
public class MainClass {
public static void main(final String[] args) {
try {
LogManager.getLogManager().readConfiguration(
new MainClass().getClass().getResourceAsStream("logging.properties"));
// main process goes here.
} catch(Exception e) {
// Exception handling
}
}
}
日志级别和FileHandler模式都很好地理解,因为日志记录最终在正确的文件中,但作为行XML输出,这使我认为格式化程序没有加载,因为它通常输出CSV格式
它可能与类路径问题有关吗?有人知道如何处理这个问题吗?可能是在您的JAR中,您有多个logging.properties文件,具有类似但略有不同的设置。当你把它们和一个罐子组合在一起时,顺序改变了,其中一个被隐藏了。做一个“jar-tf*.jar | grep logging.properties”,看看你看到了什么
如果这不起作用,您是否可以尝试取消onejar结果与目录结构的关联,然后使用类路径上的目录而不是jar运行?这将让您查看它是否与jar有关,并实际检查onejar中的logging.properties,并查看它是否与您期望的相符。使用
LogManager.getLogManager().readConfiguration(LogManager.class.getResourceAsStream(“/logging.debug.properties”)代码>
(请注意额外的斜杠)。这是一个不错的尝试,但这是我仅有的“logging.properties”。好的。我以前有过这种情况,当时我的一个第三方jar中有一个logging.properties,我没有意识到。下一个建议-添加为编辑。。。