gul*_*ndr 6 java redirect file java.util.logging
我有一个使用外部库的java程序.主程序用于log4j
记录其消息和库使用java.util.logging
.
我的问题是来自外部库和主程序的日志消息在控制台中混合.
我想将来自外部库的所有日志消息重定向到文件.我试着用logging.properties
文件做到这一点:
handlers= java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = foo.log
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
Run Code Online (Sandbox Code Playgroud)
该文件初始化为:
System.setProperty("java.util.logging.config.file", "logging.properties");
Run Code Online (Sandbox Code Playgroud)
不幸的是,来自外部库的日志消息不断出现在控制台中.我应该使用类似slf4j
拦截日志消息的东西java.util.logging
吗?
感谢您的时间.
JOT*_*OTN 12
这是我的一个程序中的一些代码.这也可以自动旋转.配置类是我自己的,从属性文件中读取.您可以用自己的值替换它.
Logger rootLogger = Logger.getLogger("");
logHandler = new FileHandler(config.getLogFile(),
config.getLogRotateSize()*1024*1024,
config.getLogRotateCount(), false);
logHandler.setFormatter(new SimpleFormatter());
logHandler.setLevel(Level.INFO);
rootLogger.removeHandler(rootLogger.getHandlers()[0]);
rootLogger.setLevel(Level.INFO);
rootLogger.addHandler(logHandler);
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个独立的程序.任何应用程序服务器都有自己的日志记录配置工具.如果需要动态调试模式,程序还可以动态更改格式化程序和级别.