Commons日志记录使用java.util.logging

Commons日志记录使用java.util.logging,java,log4j,java.util.logging,Java,Log4j,Java.util.logging,我正在尝试使用commons日志记录,并希望使用java.util.logging作为底层机制 LogTest.java import org.apache.commons.logging.*; public class LogTest { public static void main(String args[]) { System.setProperty("java.util.logging.config.file","log.propertie

我正在尝试使用commons日志记录,并希望使用java.util.logging作为底层机制

LogTest.java

import org.apache.commons.logging.*;

public class LogTest { 

        public static void main(String args[]) {
            System.setProperty("java.util.logging.config.file","log.properties");
            Log logger = LogFactory.getLog(LogTest.class);
            logger.trace("trace msg");
        }
}
我有src/main/resources/log.properties(我使用的是maven项目)

我看不到任何输出。 请告诉我如何通过编程设置log.properties来利用java日志记录

# Loggers and Handlers may override this level

尝试在log.properties中添加
java.util.logging.ConsoleHandler.level=ALL

您需要指定一个实现日志接口的记录器。在这种情况下

查看更多详细信息

除链接外:

将“
commons logging.properties
”文件放入应用程序的类路径中。 此文件的内容应如下所示:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
设置此属性将指示Commons日志记录使用JDK Logger (即Java SE Logger)作为日志实现

然后将
log config.properties
放在类路径中,并进行相应的配置


如果您决定将来更改impls,请在类路径中创建commons logging.properties

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
在创建记录器实例之前,请设置java.util.logging.config.file:

System.setProperty("java.util.logging.config.file","log.properties");
然后JDK日志将是org.apache.commons.logging.*使用的所有日志


示例:spring、hibernate、struts等。

虽然Snekse的答案基本正确,但有一点需要纠正/澄清:

  • 正确:commons日志从类路径搜索其属性文件。因此,必须在类路径中找到commons-logging.properties
  • 不正确:JDK记录器(JUL记录器)通过FileInputStream加载其配置(它在文件系统对象上工作,而不是在类路径上)。请参阅java.util.logging.LogManager.readConfiguration()。因此,“java.util.logging.config.file”的系统属性值必须是绝对路径或相对于实际执行目录

  • 很抱歉这不起作用。还有我的src/main/resources/commons-logging.properties的内容:org.apache.commons.logging.Log=org.apache.commons.logging.impl.jdk14logger谢谢分享我的博客链接!这是可行的(一个简单的Java项目)。但是,在Eclipse/STS中对Maven项目进行同样的尝试并没有成功。尝试将日志配置文件(我将所有配置都放在commons-logging.properties本身中)放在“src/main/resources”和“src/main/java”以及项目的根目录中,但没有得到它。在这种情况下,当使用maven时,类路径是什么?
    src/main/resources
    应该是正确的。如果它不起作用,您需要验证关于类路径中包含的内容的假设。您可能还希望通过打开jar/war来验证所有内容是否正确打包,以确保文件位于您期望的位置。
    System.setProperty("java.util.logging.config.file","log.properties");