【问题标题】:Eclipse console doesn't show Tomcat exceptions/stacktraceEclipse 控制台不显示 Tomcat 异常/堆栈跟踪
【发布时间】:2016-01-11 06:42:28
【问题描述】:

当我从 Eclipse 中启动 Tomcat 时,我得到一个控制台,其中包含我非常习惯的日志信息,它们总是以 Tomcat 在 n 毫秒内启动的语句结束。

但是,每当发生异常时,此异常的堆栈跟踪不会显示在控制台中。我曾经能够直接从 IDE 中看到它们“发生”。

将 logging.properties 中的级别设置为不同的值(FINEST 或 ERROR)会带来预期的变化,但仍然没有任何异常的日志条目。

Tomcat 是否以不同的方式记录异常?

HTTP 500 消息提到了 Tomcat 日志。所以应该有一个地方可以发送更多信息。

各自的日志目录只包含简单的访问日志和我在 Eclipse 控制台上看到的内容。

哪个配置负责输出到控制台?

我的 logging.properties 如下所示:

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINE
org.apache.catalina.level=FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO    
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO

【问题讨论】:

  • 您应该将表示INFOorg.apache.catalina.level 设置为ERROR,看看会发生什么。根据我从处理日志中了解到的情况,现在只会记录信息级别而不是错误级别。
  • 尝试添加滚动文件附加程序或类似的并查找生成的文件

标签: java eclipse tomcat


【解决方案1】:

您使用的是哪种日志记录实现?在 logging.propertie 中,您正在配置 apache 日志。要使用纯 java 日志,请尝试以编程方式配置,如下所示:

        static Logger logger = Logger.getLogger(YourClass.class.getName());

        System.setProperty("java.util.logging.SimpleFormatter.format", "%4$s: [%1$tc] %5$s %n");
        //Creating consoleHandler and fileHandler
        consoleHandler = new ConsoleHandler();
        LOGGER.addHandler(consoleHandler);

        //Setting levels to handlers and LOGGER
        consoleHandler.setLevel(Level.ALL);
        consoleHandler.setFormatter(new SimpleFormatter());

        .. When you want to log, do this: 

        LOGGER.log(Level.FINE, "HELLO LOG");

【讨论】:

  • 这是错误的级别。我想获得由 Tomcat 本身产生的输出,而不是从我的应用程序中以编程方式记录事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
相关资源
最近更新 更多