Sun Java System Instant Messaging 7.2 管理指南

第 13 章 管理 Instant Messaging 的記錄

Instant Messaging 建立記錄檔以記錄事件、各個軟體元件的相關狀態、系統錯誤,和伺服器、多重訊號組合器、行事曆代理程式、監視程式與 Instant Messenger 的其他部分。藉由檢視記錄檔,您可以監控伺服器作業的許多部份。本節於下列主題中提供關於記錄的資訊:

如需 XMPP/HTTP 閘道記錄的資訊,請參閱管理 XMPP/HTTP 閘道記錄。此外,您可以根據需求收集 Instant Messenger 的記錄資料。如需詳細資訊,請參閱管理 Instant Messenger 記錄

Instant Messaging 記錄簡介

Instant Messaging 提供兩種產生記錄檔案的方法:使用 log4j,若沒有 log4j 則指定 iim.conf 中的參數。Log4j 樣式記錄可供所有伺服器實例使用,包括重新導向伺服器、行事曆代理程式、監視程式和 XMPP/HTTP 閘道,但不包括多重訊號組合器。

如需 XMPP/HTTP 閘道記錄的資訊,請參閱管理 XMPP/HTTP 閘道記錄。如需設定 Instant Messenger 記錄的資訊,請參閱管理 Instant Messenger 記錄


備註 –

iim.conf 參數式記錄機制在未來的版本中可能會取消。儘量使用 log4j。


您可以配置 Instant Messaging 伺服器、多重訊號組合器、行事曆代理程式、監視程式和 XMPP/HTTP 閘道的記錄層級。此外,使用 log4j,您便可以配置 Instant Messaging 只產生 XMPP 流量的個別記錄檔案。

如果您在一般系統維護時不是使用 log4j 樣式記錄,您必須定期檢閱並修剪記錄檔案,使其不會佔用太多磁碟空間。伺服器不會執行這個動作。

如需 log4j 的詳細資訊,請參閱 Apache Logging Services 網站

Instant Messaging 記錄檔案位置

您在安裝 Instant Messaging 後執行 configure 公用程式時指定的記錄檔案位置。一般而言,記錄檔案儲存在 im-runtime-base/log 中。請參閱Instant Messaging 伺服器目錄結構,以取得如何找到 im-runtime-base 的資訊。

如果您在部署中使用 log4j 產生記錄,那麼記錄程式也會使用您在配置期間指定的目錄做為儲存 log4j 記錄的基礎目錄。

Instant Messaging 元件記錄層級

維護錯誤記錄的層級或優先順序,定義為該記錄應該的詳細程度或冗長程度。優先順序愈高,意味著資訊愈不詳細,因為在記錄檔案中只會記錄高優先順序 (高嚴重性) 的事件。相反的,越低的優先順序表示越詳細,因為更多事件會記錄在記錄檔中。

無論您是使用 log4j 還是參數式記錄,您可以為每個元件分別設定不同的記錄層級。

表 13–1 描述這些元件的記錄層級。這些記錄層級是由 UNIX syslog 設備所定義的層級子集。

表 13–1 Instant Messaging 元件的記錄層級

層級 

說明 

FATAL

此優先等級在記錄檔中記錄最少的記錄詳細資訊。每當發生重大問題或重要情況時,會新增一個記錄到記錄檔中。如果發生 FATAL 問題,應用程式可能停止運作。 

ERROR

每當發生可回復的軟體錯誤情況或是偵測到網路錯誤,會新增一個記錄到記錄檔中。例如,當伺服器無法連接到客戶端或連接到另一台伺服器時。 

WARNING

每當偵測到使用者錯誤時,會新增一個記錄到記錄檔中。例如,當伺服器無法了解客戶端傳送的通訊時。 

INFO

每當發生重大的動作時,會新增一個記錄到記錄檔中。例如,當一般使用者成功登入或登出時。 

DEBUG

會在記錄檔中記錄此工作。此資訊僅對於除錯非常有用。在每個程序或工作中個別步驟的每個事件都會寫入記錄檔中,以幫助一般使用者在除錯應用程式時識別問題。 

當您選擇特定的記錄層級後,和此層級以及與所有較高和較低冗長層級對應的事件都會被記錄。

INFO 是伺服器的預設層級。ERROR 是多重訊號組合器、行事曆代理程式和監視程式記錄檔案的預設層級。


備註 –

如果您不是使用 log4j,且您將記錄層級指定為 DEBUG,您的記錄檔案會佔用更多的磁碟空間。監控並調整您的記錄檔以免佔用太多磁碟空間。


使用 Log4j 管理 Instant Messaging 記錄

當您安裝 Instant Messaging 時,Log4j 配置檔案的範本檔案 (log4j.conf.template ) 會安裝到 im-svr-base/lib 目錄中。當您在安裝後執行 configure 公用程式時,會使用範本在 im-cfg-base 目錄中建立 log4j 配置檔案 (log4j.conf)。此配置檔案用於決定儲存由 log4j 產生的記錄檔案的位置、各種元件使用的記錄層級、輸出語法,並決定要產生哪種記錄檔案。

本節在以下小節描述使用 log4j 記錄程式產生 Instant Messaging 記錄檔案:

log4j 記錄程式使用 Instant Messaging 元件記錄層級中所述的記錄層級。

如需 log4j 相關的詳細資訊,和記錄檔案配置層面的說明,例如大小、備份數目等,請參閱 Apache Logging Services 網站

Instant Messaging Log4j 配置檔案 (log4j.conf ) 的位置

您可以變更 log4j 配置檔案 log4j.conf 的位置,方法是修改 iim.conf 中的 iim.log4j.config 參數。如果您未指定此參數的值,記錄程式會查閱 im-cfg-base。如果記錄程式在該目錄中找不到 log4j 配置檔案,它會使用 iim.conf 記錄參數產生非 log4j 樣式的記錄。

如需如何找到 im-cfg-base 的資訊,請參閱Instant Messaging 伺服器目錄結構

Instant Messaging Log4j 記錄檔案語法

configure 公用程式會根據 log4j 配置檔案範本 (log4j.conf.template) 的內容產生 log4j 配置檔案 (log4j.conf )。範例 13–1 顯示 log4j 範本。在此範本中:


範例 13–1 Log4j 範本檔案


log4j.logger.xmppd=INFO, A1
# DEFAULT TO RollingFileAppender
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.file=${logdir}/xmppd.log
log4j.appender.A1.append=true
log4j.appender.A1.maxBackupIndex=7
log4j.appender.A1.maxFileSize=5mb
# More example appenders..
# Straight to console..
# log4j.appender.A1=org.apache.log4j.ConsoleAppender
# log4j.appender.A1.ImmediateFlush=true
# Rollover at midnight..
# log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
# log4j.appender.A1.DatePattern='.'yyyy-MM-dd
# log4j.appender.A1.file=${logdir}/xmppd.log
# log4j.appender.A1.ImmediateFlush=true
# log4j.appender.A1.append=true
# Send to SMTP..
# log4j.appender.A1=org.apache.log4j.SMTPAppender

# PATTERN LAYOUT AND OPTIONS
# DEFAULT TO PatternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# For full dates..
log4j.appender.A1.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n
# IM traditional output format..
#log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %c [%t] %m%n
# More example layouts
# XMLLayout for chainsaw consumption
# log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout
# TTCCLayout for NDC information

# log4j.appender.A1.layout=org.apache.log4j.xml.TTCCLayout
# log4j.appender.A1.layout.DateFormat=ISO8601
# log4j.appender.A1.layout.TimeZoneID=GMT-8:00
# log4j.appender.A1.layout.CategoryPrefixing=false
# log4j.appender.A1.layout.ThreadPrinting=false
# log4j.appender.A1.layout.ContextPrinting=false

# Now we list logger/appender/layout for the other default loggers, but
# only the defaults..
log4j.logger.iim_wd=ERROR, A2
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.file=${logdir}/iim_wd.log
log4j.appender.A2.append=true
log4j.appender.A2.maxBackupIndex=7
log4j.appender.A2.maxFileSize=5mb
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

# For separate xmpp traffic log, disabled by default.
log4j.logger.xmppd.xfer=DEBUG, A3
log4j.appender.A3=org.apache.log4j.varia.NullAppender
# Select next block instead of previous line to enable separate transfer log
# log4j.appender.A3=org.apache.log4j.RollingFileAppender
# log4j.appender.A3.file=${logdir}/xfer.log
# log4j.appender.A3.append=true
# log4j.appender.A3.maxBackupIndex=7
# log4j.appender.A3.maxFileSize=5mb
# log4j.appender.A3.layout=org.apache.log4j.PatternLayout
# # Note, simpler default output than above 3 loggers:
# log4j.appender.A3.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.agent-calendar=ERROR, A4
log4j.appender.A4=org.apache.log4j.RollingFileAppender
log4j.appender.A4.file=${logdir}/agent-calendar.log
log4j.appender.A4.append=true
log4j.appender.A4.maxBackupIndex=7
log4j.appender.A4.maxFileSize=5mb
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.net.outer_planes.jso.BasicStream=OFF, A5
log4j.appender.A5=org.apache.log4j.RollingFileAppender
log4j.appender.A5.file=${logdir}/jso.log
log4j.appender.A5.append=true
log4j.appender.A5.maxBackupIndex=7
log4j.appender.A5.maxFileSize=5mb
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.genredirect=INFO, A6
log4j.appender.A6=org.apache.log4j.RollingFileAppender
log4j.appender.A6.file=${logdir}/genredirect.log
log4j.appender.A6.append=true
log4j.appender.A6.maxBackupIndex=7
log4j.appender.A6.maxFileSize=5mb
log4j.appender.A6.layout=org.apache.log4j.PatternLayout
log4j.appender.A6.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

Instant Messaging 元件的 Log4j 記錄層級

log4j 記錄程式使用的記錄層級,與 Instant Messaging 元件記錄層級中所述 iim.conf 參數式記錄機制的記錄層級相同。

Procedure指定 Log4j 配置檔案 (Log4j.conf) 的位置

  1. 開啟 iim.conf

    如需找到此檔案的詳細資訊,請參閱iim.conf 檔案位置

  2. iim.log4j.config 參數設定為您要記錄程式從中尋找 log4j.conf 的路徑。

    例如,在 Solaris 上:


    iim.log4j.config=/etc/opt/SUNWiim/default/config/log4j.conf
    

    在 Linux 上:


    iim.log4j.config=/etc/opt/sun/im/default/config/log4j.conf
    
  3. 儲存並關閉 iim.conf

  4. 重新整理伺服器。


    imadmin refresh
    

Procedure啟用或停用 Instant Messaging 元件的 Log4j 記錄

根據預設,log4j 記錄用於所有為其產生記錄資訊的元件。

  1. 若要停用 log4j 記錄,可將 log4j.conflog4j.conf.template 中的元件記錄層級設定為 OFF

    如需詳細資訊,請參閱設定 Instant Messaging 的 Log4j 記錄層級

  2. 若要啟用 log4j 記錄,可將 log4j.conflog4j.conf.template 中的元件記錄層級設定為任何非 OFF 的記錄層級。

Procedure設定 Instant Messaging 的 Log4j 記錄層級

您可以透過修改範本或記錄配置檔案來設定記錄層級。但是,如果您只修改配置檔案,下次您執行 configure 時會覆寫您所做的任何變更。為避免這種狀況的發生,您應同時變更配置檔案和範本。

  1. 開啟 log4j.conf.template

    依預設,此檔案會儲存於下列位置:


    im-svr-base/lib
  2. 對於每個元件,指定您要使用的記錄層級。

    例如,設定伺服器的記錄層級:


    log4j.logger.xmppd=log-level
    

    其中,log-levelFATAL ERRORWARNINGINFODEBUG 中的一個。

    如需每個記錄層級的詳細資訊,請參閱表 13–1

  3. 儲存並關閉 log4j.conf.template

  4. 重複 log4j.conf 配置檔案的程序。

Procedure指定 Instant Messaging 元件的最大 Log4j 記錄檔案大小

您可以透過修改範本或記錄配置檔案來設定記錄層級。但是,如果您只修改配置檔案,下次您執行 configure 時會覆寫您所做的任何變更。為避免這種狀況的發生,您應同時變更配置檔案和範本。

  1. 開啟 log4j.conf.template

    依預設,此檔案會儲存於下列位置:


    im-svr-base/lib
  2. 對於每個元件,指定元件記錄檔案的最大大小。

    例如,設定伺服器記錄檔案的大小:


    log4j.appender.A1.maxFileSize=max-logfile-size
    

    其中,A1 是伺服器的預設附加器 ID,max-logfile-size 的單位是 MB,例如 5MB

  3. 重複 log4j.conf 配置檔案的程序。

iim.conf 參數配置 Instant Messaging 元件的記錄

如果您不是使用 log4j 產生記錄檔案,您必須為每個您要 Instant Messaging 為其產生記錄資訊的元件設定特有的配置參數。此方法亦稱做參數式 Instant Messaging 記錄。您可以使用所有伺服器實例的參數式記錄,包括重新導向伺服器、多重訊號組合器、行事曆代理程式和監視程式。


備註 –

iim.conf 參數式記錄機制在未來的版本中可能會取消。儘量使用 log4j。


表 13–2 提供 iim.conf 中的記錄檔案名稱和配置參數名稱,用於設定每個 Instant Messaging 元件記錄檔的記錄層級。

表 13–2 Instant Messaging 元件的記錄檔案名稱和記錄層級配置參數

元件 

記錄檔案名稱 

記錄層級配置參數 

伺服器 

xmppd.log

iim.log.iim_server.severity

多重訊號組合器 

mux.log

iim.log.iim_mux.severity

行事曆代理程式 

agent-calendar.log

iim.log.agent-calendar.severity

監視程式 

iim_wd.log

iim.log.iim_wd.severity

配置參數可以具有下列值:

如需每個記錄層級的詳細記錄資訊,請參閱Instant Messaging 元件記錄層級

此外,有 Sun JavaTM System Access Manager 的部署中的記錄配置是由 com.iplanet.services.debug.level 特性所決定的。您可以在 Sun Java System Access Manager 主機的 AMConfig.properties 檔案中設定此特性。依預設,此檔案會安裝於下列位置:

AM-svr-base/lib/AMConfig.properties

其中,AM-svr-base 是您要安裝 Access Manager 的目錄。

此屬性可以包含下列的值:

根據預設,Sun Java System Portal Server 桌面記錄檔案 (desktop.debug ) 和歸檔記錄檔案 (IMArchiveSearch.log IMArchiveSubmit.log) 儲存於以下位置中:

Procedure使用 iim.conf 參數設定 Instant Messaging 元件的記錄層級

    修改 iim.conf 中的記錄參數。

    如需記錄檔案與您必須為每個元件設定的相關參數,請參閱表 13–2

    如需找到並修改 iim.conf 的說明,請參閱iim.conf 檔案語法。如需監視程式的詳細資訊,請參閱管理監視程式程序。如需行事曆代理程式的詳細資訊,請參閱第 16 章, 使用行事曆快顯提醒

管理 Instant Messenger 記錄

根據預設,不會記錄 Instant Messenger 資料。可能要求您在支援呼叫期間收集用戶端資料。在此情形中,您將必須先啟用記錄才能檢視用戶端記錄資料。

Instant Messenger 記錄是隨選建立的,並儲存在使用者的主目錄 (usr_home/.sunmsgr/messenger.log ) 中。

設定 Instant Messenger 記錄

若要設定 Instant Messenger 記錄,您必須:

  1. 決定您要收集的資料類型。

  2. 修改 im.jnlp 以包含 logconfig 參數。

  3. 根據您要收集的資料類型指定 logconfig 參數的類型。

  4. 重新部署資源檔案。

Procedure啟用 Instant Messenger 記錄

  1. 備份 im.jnlp

  2. 以文字編輯器開啟 im.jnlp Instant Messenger 資源檔案。

  3. 搜尋行:


    <application-desc main-class="com.iplanet.im.client.iIM">
  4. 將下列引數新增至該部分的尾端:


    <argument>logconfig=type</argument>
    

    其中,typeALLAPIXMPPTRAFFICCLIENT 中的一個。如需詳細資訊,請參閱Instant Messenger 記錄檔案內容選項

  5. 儲存並關閉 im.jnlp 檔案。

  6. 如果您使用 Sun Java System Application Server 或 Sun Java System Web Server,則依照重新部署資源檔案所述,重新部署資源檔案。

  7. 重新啟動 Instant Messenger。

  8. 找到記錄檔案。

    根據預設,記錄檔儲存為 usr_home/.sunmsgr/messenger.log

接下來的步驟

當您完成 Instant Messenger 的疑難排解時,應復原到 im.jnlp 的備份。然後,重新部署資源檔案,如重新部署資源檔案所述。

找到 Instant Messenger 記錄檔案 (messenger.log )

根據預設,Instant Messenger 記錄檔儲存為使用者主目錄下的 messenger.log ,如下所示:


/usr_home/.sunmsgr/messenger.log

Instant Messenger 記錄檔案內容選項

您可以透過指定 im.jnlp 中的 logconfig 參數值,決定您要在 messenger.log 中記錄的作業。表 13–3 描述 logconfig 的配置參數。如需設定 logconfig 參數和產生 Instant Messenger 記錄的說明,請參閱啟用 Instant Messenger 記錄

表 13–3 messenger.log 的 Instant Messenger 記錄選項

logconfig

messenger.log 包含...

ALL

API 資訊,用戶端和伺服器之間的所有流量,以及 Instant Messenger 用戶端應用程式本身的除錯資訊。 

API

僅 API 資訊。 

XMPPTRAFFIC

僅用戶端到伺服器的通訊。 

CLIENT

僅用戶端應用程式 (Instant Messenger) 詳細資訊。