java - 如何将 java.util.logging 重定向到文件?

标签 java file redirect 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

此文件初始化为:

System.setProperty("java.util.logging.config.file", "logging.properties");

不幸的是,来自外部库的日志消息不断出现在控制台中。 我应该使用类似 slf4j 的东西来拦截来自 java.util.logging 的日志消息吗?

感谢您的宝贵时间。

最佳答案

这是我的一个程序中的一些代码。这也会自动旋转。配置类是我自己的,是从属性文件中读取的。您可以将其替换为您自己的值。

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); 

请注意,这是针对独立程序的。任何应用服务器都有自己的日志配置工具。如果需要动态 Debug模式,该程序还可以即时更改格式化程序和级别。

关于java - 如何将 java.util.logging 重定向到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292599/

相关文章:

java - 在java中使用不同类型的setter

java - 为什么 createCriteria 返回这么多对象?

Linux:如何删除目录本身(不是子目录)内的所有文件(不是目录)

post - 你能用 POST 而不是 GET 来做一个 struts2 Action 重定向吗?

apache - 使用 htaccess 进行多域重定向

java - 根据要注入(inject)的对象注入(inject)值

java - 在namedParameterJdbcTemplate参数中使用什么更好

java - 使用java上传文件到服务器

c# - 删除 SQL 数据库中不存在的图像

php - WordPress 登录 redirect_to 不工作