将日志写入tomcat/catalina.out
的最简单方法是什么?我试过System.out.print()
,System.err.print()
工作正常。
我只是想知道尽管sysout
和syserr
有更好的选择吗?
答案 0 :(得分:5)
对于您自己的日志记录(由您自己的servlet代码生成的日志记录项),Simple Logging Facade for Java (SLF4J)是现代方法。此接口充当façade,可与多个可插入实现中的任何一个一起使用。这些实现包括与Java,log4j,Logback等捆绑在一起的java.util.logging工具。
Logback是你应该看的那个。由多年前创建着名的log4j的人创建。 Logback是log4j的后续版本。同一个人还创建了SLF4J,以防止你被锁定到任何一个日志框架。
您的servlet代码↔SLF4J↔Logback↔logs
您可以通过多种方式配置LogBack以满足您的需求。您可以写入文本文件,将日志记录项发送到数据库等等。
除了您自己的日志记录之外,还有Tomcat本身执行日志记录的问题,以跟踪每个传入的请求。
Tomcat通过Valve执行此类日志记录。默认情况下,这些日志记录项只是写入文本文件。你可能想要做更多的事情。
Logback提供了一个额外的模块logback-access,用于Apache和Apache的两个servlet容器Tomcat。来自Eclipse的Jetty。模块logback-access
是Tomcat的Valve的扩展。通过扩展Valve,您可以替换默认行为。您可以将Tomcat自己的日志记录项发送到Logback基础结构(文件,数据库记录等)。
答案 1 :(得分:4)
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");