簡體   English   中英

在Tomcat之類的Servlet容器中使用JEE版本時,如何禁用Restlet訪問日志記錄?

[英]How to disable Restlet access logging when using JEE version in Servlet Container like Tomcat?

Restlet框架文檔吹捧它可以通過Server類並使用jse庫構建獨立運行,或者使用jee庫構建在Tomcat之類的Servlet容器中運行。

該庫有助於生成兩種類型的日志記錄 ,即與代碼相關的調試和錯誤日志記錄,以及與訪問相關的日志記錄,如下所示:

20-Dec-2018 12:33:01.723 INFO [http-nio-8088-exec-52] org.restlet.engine.log.LogFilter.afterHandle 2018-12-20   12:33:01    0:0:0:0:0:0:0:1 -   0:0:0:0:0:0:0:1 8088    POST    /WebApp/route   -   204 0   647 11619   http://localhost:8088   PostmanRuntime/7.4.0    -

這在具有Engine#setLogLevel(...)的-jse構建的獨立模式下很有用。 當我在已經有單獨訪問日志的Tomcat容器內使用-jse構建時,發現這種類似於日志的Apache httpd會帶來額外的噪音。 不幸的是,JEE構建中不存在Engine#setLogLevel。

使用簡單的Apache Tomcat Restlet JEE示例代碼 ,禁用Restlet訪問日志的理想位置在哪里?

在測試了不同的東西之后,使用Logger.getLogger(“ org.restlet”)。setLevel(Level.WARNING)是唯一可靠地禁止Restlet訪問日志消息的東西。 我嘗試了org.restlet.engine,org.restlet.engine.og和org.resetlet.engine.log.LogFilter以及各種組件訪問方法,但都沒有抑制消息。 我不確定我是否會抑制自己的力量。 看來,如果JEE中沒有Engine#setLevel,則應在JEE中默認禁止訪問日志記錄。

package my.package.space;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.restlet.Application;
import org.restlet.Restlet; // from org.restlet.jee artifact version 2.3.12
import org.restlet.routing.Router;

public class MyJeeApplication extends Application {

    /**
     * Creates a root Restlet that will receive all incoming calls.
     */
    @Override
    public synchronized Restlet createInboundRoot() {
        // Create a router Restlet that routes each call to a new instance of HelloWorldResource.
        Router router = new Router(getContext());
        // Set restlet log level to warning to suppress 
        // INFO org.restlet.engine.log.LogFilter.afterHandle access log messages
        Logger.getLogger("org.restlet").setLevel(Level.WARNING);
        // Defines only one route
        //router.attach("/hello", HelloWorldResource.class);
        router.attachDefault(HelloWorldResource.class);

        return router;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM