【发布时间】:2020-05-29 21:31:21
【问题描述】:
我有一个使用 Eclipse/STS 和 Spring MVC 构建的 Web 应用程序。
我正在使用 slf4j 和 log4j 进行日志记录。
这是我的 log4j.properties 文件...我知道它正在被使用,因为我在日期模式中添加了文本“MY TEST PROPS FILE”并且它出现在日志中...
# Root logger option
log4j.rootLogger=DEBUG, INFO, WARN, ERROR, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=MY TEST PROPS FILE - %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
当我运行我的网络应用程序时,控制台输出如下所示...您可以在输出中看到“MY TEST PROPS FILE”...
MY TEST PROPS FILE - 2020-05-29 17:18:36 DEBUG BasicResourcePool:422 - decremented pending_acquires: 0
MY TEST PROPS FILE - 2020-05-29 17:18:36 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@468f3122 [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@642b4cb2)
MY TEST PROPS FILE - 2020-05-29 17:18:36 DEBUG NewProxyConnection:1260 - com.mchange.v2.c3p0.impl.NewProxyConnection@71cf92cb: close() called more than once.
MY TEST PROPS FILE - 2020-05-29 17:18:36 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@468f3122 [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@642b4cb2)
MY TEST PROPS FILE - 2020-05-29 17:18:36 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@468f3122 [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@642b4cb2)
我的问题是,我从代码中尝试的日志记录没有出现在控制台输出中。
我正在这样做......
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/* ... */
private static Logger logger = LoggerFactory.getLogger(WebController.class);
/* ... */
@RequestMapping(value={"", "/", "showhome"}, method={RequestMethod.POST,RequestMethod.GET})
public ModelAndView showHome(Model model) {
logger.info("########### TEST LOG INFO");
logger.error("########### TEST LOG ERROR");
logger.warn("########### TEST LOG WARN");
logger.debug("########### TEST LOG DEBUG");
/* ... */
}
我一定错过了一些简单的东西。为什么我的测试记录器调用没有出现在控制台输出中?
更新 - 找到解决方案:我找到了解决方案并将其作为答案发布在下面。
【问题讨论】:
标签: eclipse spring-mvc log4j slf4j