2015-02-24 45 views
0

目前我正在運行澤西2.14(和灰熊2.16),雖然我沒有看到關於日誌的更新/舊版本有太大的區別。如何在澤西島2.x禁用日誌記錄

我試圖禁用類似下面的消息:

INFO: 2 * Server responded with a response on thread Grizzly-worker(15) 
2 < 201 
2 < Location: somewhere 

從每當我做,嗯,什麼事在生產環境中。我甚至有,我認爲會隱藏客戶端和服務器的方法的準系統類:

@Provider 
public class MyLoggingFilter extends LoggingFilter 
{ 
    @Override 
    public void filter(ClientRequestContext context) throws IOException 
    { 
     // Do nothing. 
     //super.filter(context); 
    } 
} 

@Provider 
public class MyLoggingFilter extends LoggingFilter 
{ 
    @Override 
    public void filter(ContainerRequestContext context) throws IOException 
    { 
     // Do nothing. 
     //super.filter(context); 
    } 
} 

應當指出的是,這些方法越來越打,因爲我通過跟蹤發現聲明。

是否有一些ServerProperty或其他切換選項,我沒有看到這是負責這個,所以我可以在生產過程中關閉此功能?

謝謝!

+0

LoggingFilter默認情況下未註冊,因此您必須在某處明確註冊它。你能向我們展示你的應用程序子類(你註冊資源和提供者的地方)嗎?此外,您的自定義日誌過濾器還應該覆蓋響應的過濾方法 - 您看到的日誌是已記錄的響應,而不是請求。 – 2015-02-24 22:05:55

回答

0

檢查您的web.xml和/或Application類。如果加入在web.xml澤西測井濾波器將是:

<init-param> 
      <param-name>jersey.config.server.provider.classnames</param-name> 
      <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value> 
     </init-param> 

如果配置爲將被包括在延伸org.glassfish.jersey.server.ResourceConfig類中的應用程序類。

0

我找到了解決辦法: 因爲

@Provider 

裝修中,LoggingFilter的正在自動註冊。通過刪除它,我可以控制日誌記錄,從而禁用日誌消息。