JBossAS7效能調優(四)

來源:互聯網
上載者:User

Logging調優

記錄日誌是每一個應用程式的一個重要任務,預設的配置一般只適合開發,但不適用於生產環境。

您切換到生產環境時需要考慮的關鍵要素是:

1. 選擇一個合適的輸出日誌的處理handler。
2. 選擇一個合適的記錄層級,它恰好可以提供給你需要的足夠資訊,不多也不少。
3. 選擇一個合適的日誌輸出格式。

鑒於一般考慮,日誌的處理handler,預設配置會啟動控制台和檔案的日誌輸出。雖然這可能在開發環境中是合適的,但在生產環境中使用控制台日誌輸出將會是一個昂貴的處理過程,導致大量的非緩衝I / O。雖然一些應用程式可能適合控制台日誌輸出,但大多數應用更適合關閉控制台日誌輸出,只使用檔案輸出的處理handler。
為了去掉控制台日誌,你可以簡單地注釋掉其處理handler:

<root-logger>

<level name="INFO"/>

<handlers>

<!-- <handler name="CONSOLE"/> -->

<handler name="FILE"/>

</handlers>

</root-logger>

下一步是選擇正確的日誌記錄層級。顯然,記錄的日誌越少,發生的I / O就越少,這樣您的整個應用程式的效能會更好。預設配置使用“INFO”層級根記錄器。你可以考慮提高到較高的層級,如“WARN”或(使用細粒度的approach)改變單一的日誌記錄類別(category)。

<logger category="org.hibernate">

<level name="WARN"/>

</logger>

在這個例子中,我們剛才提出的org.hibernate包使用“WARN”層級,這將從Hibernate中輸出更加簡潔的日誌資訊。
最後,記錄模式(pattern)也會影響您的應用程式的效能。例如,我們使用預設模式格式,如下所示:

<pattern-formatter

pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

日誌記錄模式的詳細解釋可以在第2章的控制台處理handler內容中找到。從這個基本格式開始,可儘可能考慮添加標誌%l,可以通過列印出行號和發出日誌的Class來提高你的日誌的詳細程度:

<pattern-formatter

pattern="%l %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

一旦伺服器配置被重新載入,控制台輸出下面的日誌資訊:

 

雖然這些資訊在開發時非常有用,但它會導致移植到生產環境中產生很大的效能負擔。
其它可能對你的日誌效能造成負面影響的標誌有%C(列印出調用者的Class資訊),%M(它輸出列印日誌的方法)和%F(它輸出發出日誌記錄請求的檔案名稱)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.