JbossEAP日誌配置

一、基礎內容

1.支持的日誌等級

Level Value Description
ALL Integer.MIN_VALUE Provides all log messages.(提供所有的日誌信息。)
FINEST 300 -
FINER 400 -
TRACE 400 TRACE level log messages provide detailed information about the running state of an application and are usually only captured during debugging.(TRACE 級別的日誌提供了應用程序的運行狀態的詳細信息,它通常用於調試過程。)
DEBUG 500 DEBUG level log messages indicate the progress of individual requests or application activities and are usually only captured during debugging.(DEBUG 級別的日誌指示單獨請求或應用程序活動的進展,它通常在調試過程中使用。)
FINE 500 -
CONFIG 700 -
INFO 800 INFO level log messages indicate the overall progress of the application. Often used for application startup, shutdown, and other major lifecycle events.(INFO 級別的日誌指示應用程序的總體進展。它通常用於應用程序啓動、關閉和其他主要的生命週期事件。)
WARN 900 WARN level log messages indicate a situation that is not in error, but is not considered ideal. WARN log messages can indicate circumstances that could lead to errors in the future.(WARN 級別的日誌信息代表了一個不理相但也不是錯誤的狀況。WARN 日誌信息可以指示將來可能導致錯誤的情況。)
WARNING 900 -
ERROR 1000 ERROR level log messages indicate an error that has occurred that could prevent the current activity or request from completing but will not prevent the application from running.(ERROR 級別的日誌指示可能阻止當前活動完成但不會阻止應用程序運行的錯誤已發生。)
SEVERE 1000 -
FATAL 1100 FATAL level log messages indicate events that could cause critical service failure and application shutdown and could cause JBoss EAP to shutdown.(FATAL 級別的日誌指示可能導致嚴重服務故障和應用程序關閉以及可能導致 JBoss EAP 關閉的事件。)
OFF Integer.MAX_VALUE Does not display any log message.(不顯示任何日誌信息。)

2.日誌格式

類型 描述
%c The category of the logging event.(日誌事件的類別。)
%p The level of the log entry (INFO, DEBUG, etc.).(日誌條目的級別(INFO、DEBUG 等)。)
%P The localized level of the log entry.(日誌條目的本地化級別。)
%d The current date/time (yyyy-MM-dd HH:mm:ss,SSS format).(當前的日期/時間(yyyy-MM-dd HH:mm:ss,SSS 格式)。)
%r The relative time (milliseconds since the log was initialized).(相對時間(自日誌初始化後的毫秒數)。)
%z The time zone, which must be specified before the date (%d). For example, %z{GMT}%d{HH:mm:ss,SSS}.(時區,必須在日期(%d)之前指定。例如,%z{GMT}%d{HH:mm:ss,SSS}。)
%k A log resource key (used for localization of log messages).(日誌資源關鍵字(用於日誌信息的本地化)。)
%m The log message (including exception trace).(日誌信息(包含異常跟蹤信息)。)
%s The simple log message (no exception trace).(簡單日誌信息(不包含異常跟蹤信息)。)
%e The exception stack trace (no extended module information).(異常棧跟蹤信息(不包含擴展的模塊信息)。)
%E The exception stack trace (with extended module information).(異常棧跟蹤信息(包含擴展的模塊信息)。)
%t The name of the current thread.(當前線程的名稱。)
%n A newline character.(換行符。)
%C The class of the code calling the log method (slow).(調用日誌方法(慢)的代碼的類。)
%F The filename of the class calling the log method (slow).(調用日誌方法(慢)的類的文件名。)
%l The source location of the code calling the log method (slow).(調用日誌方法(慢)的代碼的源碼位置。)
%L The line number of the code calling the log method (slow).(調用日誌方法(慢)的代碼的行號。)
%M The method of the code calling the log method (slow).(調用日誌方法(慢)的代碼的方法。)
%x The Nested Diagnostic Context.(嵌套的診斷性上下文。)
%X The Message Diagnostic Context.(消息診斷性上下文。)
%% A literal percent (%) character (escaping)(百分比(%)字符(脫字符)。).

3.過濾器

過濾標籤 描述
accept Accept all log messages.(接受所有的日誌信息。)
deny Deny all log messages.(拒絕所有的日誌信息。)
not[filter expression] Returns the inverted value of a single filter expression.(返回單個過濾器表達式的反轉值) For example:not(match(“WFLY”))
all[filter expression] Returns concatenated value from a comma-separated list of filter expressions.(返回連接用逗號隔開的過濾器表達式的值) For example:all(match(“WFLY”),match(“WELD”))
any[filter expression] Returns one value from a comma-separated list of filter expressions.(從用逗號隔開的過濾器表達式列表返回一個值) For example:any(match(“WFLY”),match(“WELD”))
levelChange[level] Updates the log record with the specified level. (用指定的級別更新日誌記錄)For example:levelChange(WARN)
levels[levels] Filters log messages with a level listed in the comma-separated list of levels. (過濾用逗號隔開的級別列表裏列出的級別的日誌信息)For example:levels(DEBUG,INFO,WARN,ERROR)
levelRange[minLevel,maxLevel] Filters log messages within the specified level range. The [ and ] characters are used to indicate an inclusive level. The ( and ) characters are used to indicate an exclusive level.(過濾指定日誌級別範圍內的日誌信息。[ 和 ] 字符用來表示包含的級別。( 和 ) 字符則用來表示排斥的級別) For example:levelRange[INFO,ERROR] The minimum level must be greater than or equal to INFO and the maximum level must be less than or equal to ERROR. levelRange[DEBUG,ERROR) The minimum level must be greater than or equal to DEBUG and the maximum level must be less than ERROR.
match[“pattern”] Filters log messages using the provided regular expression.(過濾使用提供的常規表達式的日誌信息) For example:match(“WFLY\d+”)
substitute[“pattern”,“replacement value”] A filter that replaces the first match to the pattern (first argument) with the replacement text (second argument).(用替代文本(第二個參數)替換模式的第一次匹配(第一個參數)的過濾器) For example:substitute(“WFLY”,“EAP”)
substituteAll[“pattern”,“replacement value”] A filter which replaces all matches of the pattern (first argument) with the replacement text (second argument). (用替代文本(第二個參數)替換模式的所有匹配(第一個參數)的過濾器)For example:substituteAll(“WFLY”,“EAP”)

二、日誌類型

1.Console log handler

(1)含義

日誌處理程序將日誌信息寫入到主機操作系統的標準輸出(stdout)或標準錯誤(stderr)。

(2)標籤

標籤 描述
autoflush 如果設置爲 true,日誌消息將被髮送至處理程序接收時立即分配的文件。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。
target 日誌處理程序輸出所在的系統輸出流。對於系統錯誤流和標準輸出流,它分別是 System.err 和 System.out。

(3)例子

<console-handler name="CONSOLE">
    <level name="DEBUG"/>
    <formatter>
        <named-formatter name="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
    </formatter>
</console-handler>

2.File log handler

(1)含義

日誌處理程序將日誌信息寫入到指定的文件。

(2)標籤

標籤 描述
append 如果設置爲 true,這個處理程序寫入的所有消息都將附加到這個文件(如果存在)。如果設置爲 false,每次應用服務器啓動時都會創建一個新的文件。
autoflush 如果設置爲 true,日誌消息將被髮送至處理程序接收時立即分配的文件。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
file 代表這個日誌處理程序輸出寫入的文件的對象。它有兩個配置屬性:relative-to 和 path。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。

3.Periodic rotating log handler

(1)含義

日誌處理程序將日誌信息寫入到某個命名文件,直至超過指定的時間。超時後文件將按照指定的時間戳重命名,而日誌處理程序則繼續寫入到新創建的具有原來名稱的日誌文件。

(2)標籤

標籤 描述
append 如果設置爲 true,這個處理程序寫入的所有消息都將附加到這個文件(如果存在)。如果設置爲 false,每次應用服務器啓動時都會創建一個新的文件。
autoflush 如果設置爲 true,日誌消息將被髮送至處理程序接收時立即分配的文件。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
file 代表這個日誌處理程序輸出寫入的文件的對象。它有兩個配置屬性:relative-to 和 path。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))。
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。
suffix 這個字符串包含在輪換日誌的後綴裏。suffix 的格式是句點(.)後面跟着 SimpleDateFormat 可以解析的日期字符串。

4.Size rotating log handler

(1)含義

處理程序將日誌信息寫入到某個命名文件,直至文件達到指定的大小。此時,文件將用一個數字後綴重命名,而日誌處理程序則繼續寫入到新創建的具有原來名稱的日誌文件。每個 Size 日誌處理程序都必須指定保持這種形式的最大文件數量。

(2)標籤

標籤 描述
append 如果設置爲 true,這個處理程序寫入的所有消息都將附加到這個文件(如果存在)。如果設置爲 false,每次應用服務器啓動時都會創建一個新的文件。
autoflush 如果設置爲 true,日誌消息將被髮送至處理程序接收時立即分配的文件。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
file 代表這個日誌處理程序輸出寫入的文件的對象。它有兩個配置屬性:relative-to 和 path。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
max-backup-index 輪換日誌文件保留的最大數目。當到達這個數目時,最舊的日誌文件將被重用。默認爲 1。如果使用了 suffix 屬性,輪換日誌文件的後綴將包含在輪換算法裏。當輪換日誌文件時,以 name+suffix 開始的最舊的文件將被刪除,剩餘的輪換日誌文件的數字型後綴都會增加,而最近輪換的日誌文件的後綴將是 1。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。
rotate-on-boot 如果設置爲 true,新的日誌文件將服務器重啓時創建。默認是 false。
rotate-size 日誌文件在輪換前可到達的最大尺寸。數字後的單個字符表示單位:b 爲字節、 k 爲千字節、 m 爲兆字節,而 g 爲千兆字節。例如 50m 表示 50MB。
suffix 這個字符串包含在輪換日誌的後綴裏。suffix 的格式是句點(.)後面跟着 SimpleDateFormat 可以解析的日期字符串。

(3)例子

<size-rotating-file-handler name="activemqFILE">
    <formatter>
        <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="activemq.log"/>
    <rotate-size value="100m"/>
    <max-backup-index value="100"/>
    <append value="true"/>
</size-rotating-file-handler>

5.Periodic size rotating log handler

(1)含義

日誌處理程序將日誌信息寫入到某個命名文件,直至文件達到指定的大小或 超過指定的時間。此時,文件將重命名,而日誌處理程序則繼續寫入到新創建的具有原來名稱的日誌文件。

(2)標籤

標籤 描述
append 如果設置爲 true,這個處理程序寫入的所有消息都將附加到這個文件(如果存在)。如果設置爲 false,每次應用服務器啓動時都會創建一個新的文件。
autoflush 如果設置爲 true,日誌消息將被髮送至處理程序接收時立即分配的文件。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
file 代表這個日誌處理程序輸出寫入的文件的對象。它有兩個配置屬性:relative-to 和 path。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
max-backup-index 輪換日誌文件保留的最大數目。當到達這個數目時,最舊的日誌文件將被重用。默認爲 1。如果使用了 suffix 屬性,輪換日誌文件的後綴將包含在輪換算法裏。當輪換日誌文件時,以 name+suffix
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。
rotate-on-boot 如果設置爲 true,新的日誌文件將服務器重啓時創建。默認是 false。
rotate-size 日誌文件在輪換前可到達的最大尺寸。數字後的單個字符表示單位:b 爲字節、 k 爲千字節、 m 爲兆字節,而 g 爲千兆字節。例如 50m 表示 50MB。
suffix 這個字符串包含在輪換日誌的後綴裏。suffix 的格式是句點(.)後面跟着 SimpleDateFormat 可以解析的日期字符串。

(3)例子

<periodic-size-rotating-file-handler name="FILE" autoflush="true">
    <formatter>
        <named-formatter name="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="server.log"/>
    <!-- 每100M就新建一個新的文件 -->
    <rotate-size value="100M"/>
    <!-- 一共保存150個文件,超過150個就將最早的替換掉 -->
    <max-backup-index value="150"/>
    <!-- 後綴爲年與日,例如2019-09-18,如果不是最新的日誌,則文件名爲xxx.log.2019-09-18.1 -->
    <suffix value=".yyyy-MM-dd"/>
    <append value="true"/>
</periodic-size-rotating-file-handler>

6.Syslog handler

(1)含義

日誌處理程序可以用來發送信息給遠程的日誌服務器。這允許多個應用程序發送日誌信息到相同的服務器,在一起進行解析。

(2)標籤

標籤 描述
app-name 當以 RFC5424 格式格式化消息時使用的應用程序名稱。默認的應用程序名稱是 java。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
facility RFC-5424 和 RFC-3164 定義的工具。
hostname 發送消息的主機的名稱。例如,運行應用服務器的主機的名稱。
level 日誌處理程序記錄的日誌消息的最低級別。
port syslog 服務器偵聽的端口。
server-address syslog 服務器的地址。
syslog-format 按照 RFC 規格格式化日誌消息。

7.Custom log handler

(1)含義

自定義日誌處理程序讓您可以配置新的日誌處理程序類型。自定義處理程序必須實現爲繼承 java.util.logging.Handler 的 Java 類且包含在模塊裏。您也可以將 Log4J appender 用作自定義日誌處理程序。

(2)標籤

標籤 描述
class 要使用的日誌處理程序類。
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
encoding 用於輸出的字符編碼模式。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
formatter 這個日誌處理程序使用的日誌格式器。
level 日誌處理程序記錄的日誌消息的最低級別。
module 日誌處理程序依賴的模塊。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
named-formatter 處理程序使用的格式器的名稱。
properties 用於日誌處理程序的屬性。

8.Async log handler

(1)含義

日誌處理程序是一個日誌處理程序 Wrapper,它爲一個或多個日誌處理程序提供異步行爲。它可用於具有高延遲或其他性能問題(如寫入日誌信息到網絡文件系統)的日誌處理程序。

(2)標籤

標籤 描述
enabled 如果設置爲 true,處理程序被啓用且正常工作。如果設置爲 false,處理日誌消息時處理程序將被忽略。
filter 定義簡單的過濾器類型。已棄用,轉而使用 filter-spec。
filter-spec 定義過濾器的表達式。下面的表達式定義了不匹配某個模式的過濾器:not(match(“WFLY.*”))
level 日誌處理程序記錄的日誌消息的最低級別。
name 日誌處理程序的名稱。已棄用(處理程序的地址裏已包含這個名稱)
overflow-action 當超過隊列長度時這個處理程序如何應對。它可以設置爲 BLOCK 或 DISCARD。BLOCK 讓日誌應用程序等待直至隊列有可用空間。這和非異步日誌處理程序是相同的行爲。DISCARD 允許日誌處理程序繼續,但會刪除日誌消息。
queue-length 在等待子處理程序響應時,這個處理程序保持的日誌消息的最大數目。
subhandlers 這個異步處理程序將日誌消息傳入的日誌處理程序列表。

參考文獻:
https://access.redhat.com/documentation/zh-cn/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/logging_with_jboss_eap

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章