新增記載至應用程式

當您執行 WebSphere® Application Server Liberty 應用程式時,您可以使用 Java 記載 (使用 java.util.logging) 來產生應用程式記載。

關於這項作業

相較於新增 System.out.println 陳述式至程式碼,這種作法好處多多:
  • 會以標準訊息格式外加額外資料(例如,自動新增的日期和時間戳記),將您的訊息顯示在 messages.logtrace.log 檔中。
  • 您可以更輕鬆地將自己應用程式中的問題和事件與 Liberty 元件相關聯的問題和事件產生關聯。
  • 您可以使用 Liberty 日誌檔管理特性。
  • 您可以使用 server.xml 檔中記載元素的 traceSpecification 來控制日誌程式層次。

程序

配置 LogRecordContext API 以將名稱/值配對新增至日誌和追蹤記錄。
Liberty 提供一個 API ,可用來以名稱/值配對形式將環境定義新增至日誌和追蹤記錄。 名稱/值配對會顯示在下列位置:
  • messages.log 檔(如果該日誌是配置成使用 JSON 格式)
  • 主控台輸出(如果主控台是配置成使用 JSON 格式)
  • logstashCollector 傳送給 Logstash 的記錄

請使用下列範例,來包含 JSON 格式的名稱/值配對:

LogRecordContext API
Applications that use the LogRecordContext API will have the name-value pairs that have been added to the LogRecordContext included in the JSON mapping for logs and trace emitted on the same thread.

STRING/STRING pairs
// included in json at root level as "ext_someName":"someValue"
LogRecordContext.addExtension("someName","someValue");          

STRING/INTEGER pairs
// included in json at root level as "ext_someName_int":someValue (or entirely omitted if someValue isn't parseable as an int)
LogRecordContext.addExtension("someName_int","someValue");      

STRING/FLOAT pairs
// included in json at root level as "ext_someName_float":someValue (or entirely omitted if someValue isn't parseable as a float)
LogRecordContext.addExtension("someName_float","someValue");      

STRING/BOOLEAN pairs
// included in json at root level as "ext_someName_bool":someValue (or entirely omitted if someValue isn't parseable as a bool)
LogRecordContext.addExtension("someName_bool","someValue");

請參閱下列範例,其中顯示 LogRecordContext API 使用的名稱/值配對:

LogRecordContext.addExtension("userName","don");          
LogRecordContext.addExtension("isGoldCustomer_bool":"true");
Logger.info("some message");
LogRecordContext.removeExtension("userName");
LogRecordContext.removeExtension("isGoldCustomer_bool");
Logger.info("some other message");

// first message includes the extensions
{"ibm_datetime":"2018-02-04T18:56:30.318-0500","type":"liberty_message","host":"192.168.1.1","ibm_userDir":"\/wlp\/usr\/","ibm_serverName":"server1","ibm_sequence":"1517788590318_000000003A4A7","loglevel":"INFO","module":"com.ibm.somelogger.QuickLogTest","ibm_threadId":"00002db5","message":"some message", "ext_userName":"don", "isGoldCustomer_bool":true}

// second message does not include extensions
{"ibm_datetime":"2018-02-04T18:56:30.318-0500","type":"liberty_message","host":"192.168.1.1","ibm_userDir":"\/wlp\/usr\/","ibm_serverName":"server1","ibm_sequence":"1517788590318_000000003A4A8","loglevel":"INFO","module":"com.ibm.somelogger.QuickLogTest","ibm_threadId":"00002db5","message":"some other message"}