Tomcat6:配置java.util.logging的最简单方法是什么?

时间:2011-06-09 09:47:19

标签: tomcat logging tomcat6

我正在研究一个servlet,它需要偶尔记录一些东西。但是,我不确定如何配置。

我第一次尝试启动并运行是创建一个logging.properties文件,然后使用下面的代码读取日志记录配置。

LogManager.getLogManager().readConfiguration(this.getClass().getResourceAsStream("/logging.properties"));

这种方法效果相当不错,但并非所有内容似乎都100%有效(我无法真正理解它是什么,因为有些东西可以正常工作,但有些东西不行)。

但是,我不确定这是做什么的。它是否覆盖tomcat提供的默认logging.properties中的所有设置 - 还是添加到tomcat提供的属性中?

1 个答案:

答案 0 :(得分:1)

如果其他人在寻找解释如何配置tomcat6日志记录的教程时应该找到这个问题,我将发布一个简短的解释,告诉我如何让事情发挥作用。

首先,即使你知道你将使用java.util.logging,我仍然会说使用slf4j是个好主意。 slf4j库只是一个日志记录,只是将所有日志记录转发到java.util.logging。但是,如果出于某种原因,您应该稍后决定使用log4j或commons日志记录,那么这将在2分钟内完成。 slf4j允许您指定要使用的日志框架,它只是将日志记录转发到该框架。

我选择使用slf4j,然后让它将所有日志记录转发到java.util.logging。只需将'slf4j-api'和'slf4j-jdk14'罐子添加到您的项目中即可。您无需执行任何操作来初始化应用程序中的日志记录框架。但是,您需要创建一个属性文件,其中包含有关日志记录格式,要记录的文件等的详细信息。此文件由java.util.logging而不是slf4j使用,因为slf4j只是将所有日志事件转发到java.util.logging。创建文件WEB-INF \ classes \ logging.properties并将以下代码粘贴到该文件中:

handlers = 1yourapplication.org.apache.juli.FileHandler

com.yourpplication.level = ALL
com.yourapplication.handlers = 1yourapplication.org.apache.juli.FileHandler

1yourapplication.org.apache.juli.FileHandler.level = WARNING
1yourapplication.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1yourapplication.org.apache.juli.FileHandler.prefix = yourapplication.
1yourapplication.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
1yourapplication.org.apache.juli.FileHandler.bufferSize = -1

就是这样。将创建文件'yourapplication -YYYY-MM-DD.log'(其中YYYY-MM-DD将替换为当前日期),并且日志将被写入该文件。每隔午夜就会创建一个新的日志文件。

现在,要将某些内容记录到该文件,您只需调用以下代码:

LoggerFactory.getLogger(getClass()).info("This is a logging test!");

您现在正在登录您的应用程序日志文件。