6

将日志写入的最简单方法是什么tomcat/catalina.out?我已经尝试过System.out.print()并且System.err.print()工作正常。

我只是想知道是否有更好的选择,尽管sysoutsyserr

4

2 回答 2

5

您的日志记录

对于您自己的日志记录(由您自己的 servlet 代码生成的日志记录项),Java 的简单日志记录外观 (SLF4J)是现代方式。该接口充当与多个可插入实现中的任何一个一起工作的外观。这些实现包括与 Java、log4j、Logback 等捆绑在一起的 java.util.logging 工具。

Logback是您应该查看的。由多年前创建著名 log4j 的人创建。Logback 旨在成为 log4j 的继任者。同一个人还创建了 SLF4J,以防止您陷入任何一个日志记录框架。

您的 servlet 代码 ↔ SLF4J ↔ Logback ↔ 日志

您可以通过多种方式配置 LogBack 以满足您的需求。您可以写入文本文件、将日志记录项发送到数据库等等。

Tomcat的日志记录

除了您自己的日志记录之外,还有一个问题是 Tomcat 本身执行的日志记录,以跟踪每个传入的请求。

Tomcat 通过 Valve 执行此类日志记录。默认情况下,这些日志项只是简单地写入文本文件。您可能想做的还不止这些。

Logback 提供了一个额外的模块logback-access用于Apache的Tomcat和Eclipse 的Jetty的 servlet 容器。该模块logback-access是 Tomcat 的 Valve 的扩展。通过扩展 Valve,您可以替换默认行为。您可以将 Tomcat 自己的日志记录项发送到您的 Logback 基础设施(文件、数据库记录等)。

于 2013-11-13T07:02:21.710 回答
5
import java.util.logging.*

Logger.getLogger (YourClass.class.getName()).log(Level.WARNING, e.getMessage(), e);
Logger.getLogger (YourClass.class.getName()).log(Level.INFO, "hello world");
于 2013-11-12T16:08:12.760 回答