Restlet:如何取消服务器请求日志消息
问题描述:
我已经使用Restlet 2.1.2创建了一个简单的REST服务器,它工作得很好。每一个岗位或GET请求导致的Restlet发出以下形式的日志消息:Restlet:如何取消服务器请求日志消息
2013-05-02 19:44:39 127.0.0.1 - - 8081 POST /rest/dispatch - 200 - - 21 http://127.0.0.1:8081Restlet-Framework/2.1.2 -
有很多要求,这是不是为应用程序来收集这些信息很重要。问题:
- 从哪个类发出的消息?我试图grep通过Restlet源代码来找到它,但没有运气。
- 这些消息正在发送到标准输出。我如何直接将它们写入文件?
- 如何配置它,以便只有在响应状态不是200时才会生成此类消息?
非常感谢您的任何信息。 PS:我发现了一些似乎相关的链接,虽然我还没有搞清楚到底需要做什么。我将把这些留在这里供将来参考。
- http://restlet.org/learn/tutorial/2.1/#part07
- http://restlet.org/learn/guide/2.1/editions/jse/logging
- http://restlet.org/learn/guide/2.0/core/service/log
- http://restlet.org/learn/javadocs/snapshot/jse/engine/org/restlet/engine/log/LogFilter.html
- http://restlet-discuss.1400322.n2.nabble.com/Hiding-Restlet-LogFilter-afterHandler-log-td7578429.html
答
简单地创建并设置NullLogService,说所有的请求都没有为loggable:
public class NullLogService extends LogService
{
@Override
public boolean isLoggable(Request request) {
return false;
}
}
然后设置为您的日志服务:
public static void main(String[] args) throws Exception {
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8082);
Application application = new RestletTestResource();
component.getDefaultHost().attach(application);
component.setLogService(new NullLogService());
component.start();
}
万分感谢!关于仅记录具有200以外的HTTP返回代码的响应,我想我可以从'isLoggable'的参数中提取它? – 2013-10-07 18:56:44
似乎是一个体面的方式来做到这一点 – 2013-10-07 23:52:20