[英]Commons logging to use java.util.logging
我正在尝试使用公共日志记录并希望使用 java.util.logging 作为底层机制。
日志测试程序
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 项目)
handlers=java.util.logging.ConsoleHandler
# Default global logging level.
# Loggers and Handlers may override this level
.level=ALL
我看不到任何输出。 请告诉我如何以编程方式设置 log.properties 以利用 java 日志记录。
您需要指定一个实现 Log 接口的记录器。 在这种情况下, Jdk14Logger 。
查看如何将“Apache Commons Logging”与“Java SE Logging”结合使用? 更多细节。
除了来自链接:
将“
commons-logging.properties
”文件放在应用程序的类路径中。 这个文件的内容应该是这样的:org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
设置这个属性会指示 Commons-Logging 使用 JDK Logger(即 Java SE Logger)作为日志执行。
然后将log-config.properties
放在您的类路径中并进行相应配置。
在您的类路径中创建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
在 Logger 实例之前设置java.util.logging.config.file :
System.setProperty("java.util.logging.config.file","log.properties");
然后 JDK 日志记录将追加所有由 org.apache.commons.logging.* 使用的日志;
例如:spring、hibernate、struts 等。
# Loggers and Handlers may override this level
尝试在 log.properties 中添加java.util.logging.ConsoleHandler.level=ALL
。
虽然 Snekse 的回答基本上是正确的,但有一点需要纠正/澄清:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.