Restlet 2.1如何将日志记录更改为log4j

时间:2012-11-23 13:57:25

标签: log4j restlet java.util.logging restlet-2.0

我有一个Restlet webservice,我想删除Restlet在发出请求时创建的日志中的调试语句。目前我正在使用此代码将Restlet日志记录重定向到我的日志文件而不是控制台输出:

Slf4jLoggerFacade loggerFacade = new Slf4jLoggerFacade();
Engine.getInstance().setLoggerFacade(loggerFacade);

在我的log4j.properties文件中,我有这个:

log4j.rootLogger=WARNING, LOGFILE

我的问题是它仍然显示日志中的调试条目说它收到了请求。由于所有调试语句,这会导致日志文件的文件很大。

我也尝试过删除调试语句,但它不起作用:

Engine.setLogLevel(Level.WARNING);

并试过这个:

Engine.setRestletLogLevel(Level.WARNING);

为什么我的log4j.properties文件无效?

以下是我要删除的日志中的一些调试条目:

11月29日00:00:01 DEBUG org.restlet日志主持人:ip:8182
11月29日00:00:01 DEBUG org.restlet日志连接:keep-alive
11月29日00:00:01 DEBUG t.SpringComponent.ServerRouter fine选择了默认虚拟主机
11月29日00:00:01 DEBUG t.SpringComponent.ServerRouter fine基本URI:“http:// ip:8182”。剩下的部分:“/ getFoo?foo = Foo%2Ffoo& fileName = foo.bin”

2 个答案:

答案 0 :(得分:2)

你能不能确定上下文的一些元素:应用程序是在servlet容器中运行的吗?你使用什么样的服务器连接器? 由于我没有清楚地看到日志中放置了什么样的调试跟踪,您可以提供样本吗? 你还在使用Restlet-2.0吗?

祝你好运, 蒂埃里博伊洛

答案 1 :(得分:1)

解决了!这不是一个Restlet问题,更多的是不太了解log4j。我将log4j级别设置为WARNING而不是WARN。这是我在log4j中的设置解决了我的问题。 :)

log4j.rootLogger=ERROR, LOGFILE
log4j.logger.org.restlet=WARN
log4j.logger.org.springframework=WARN