将日志写入的最简单方法是什么tomcat/catalina.out
?我已经尝试过System.out.print()
并且System.err.print()
工作正常。
我只是想知道是否有更好的选择,尽管sysout
和syserr
?
对于您自己的日志记录(由您自己的 servlet 代码生成的日志记录项),Java 的简单日志记录外观 (SLF4J)是现代方式。该接口充当与多个可插入实现中的任何一个一起工作的外观。这些实现包括与 Java、log4j、Logback 等捆绑在一起的 java.util.logging 工具。
Logback是您应该查看的。由多年前创建著名 log4j 的人创建。Logback 旨在成为 log4j 的继任者。同一个人还创建了 SLF4J,以防止您陷入任何一个日志记录框架。
您的 servlet 代码 ↔ SLF4J ↔ Logback ↔ 日志
您可以通过多种方式配置 LogBack 以满足您的需求。您可以写入文本文件、将日志记录项发送到数据库等等。
除了您自己的日志记录之外,还有一个问题是 Tomcat 本身执行的日志记录,以跟踪每个传入的请求。
Tomcat 通过 Valve 执行此类日志记录。默认情况下,这些日志项只是简单地写入文本文件。您可能想做的还不止这些。
Logback 提供了一个额外的模块logback-access用于Apache的Tomcat和Eclipse 的Jetty的 servlet 容器。该模块logback-access
是 Tomcat 的 Valve 的扩展。通过扩展 Valve,您可以替换默认行为。您可以将 Tomcat 自己的日志记录项发送到您的 Logback 基础设施(文件、数据库记录等)。
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");