Sun Java System Instant Messaging 7.2 관리 설명서

13장 Instant Messaging 로깅 관리

Instant Messaging은 이벤트, 다양한 소프트웨어 구성 요소의 관련 상태, 시스템 오류 및 서버와 멀티플렉서, 캘린더 에이전트, 워치독 및 Instant Messaging의 기타 측면들을 기록하는 로그 파일을 생성합니다. 로그 파일을 조사하면 다양한 서버 작업을 모니터링할 수 있습니다. 로깅과 관련하여 이 장에서 다루는 내용은 다음과 같습니다.

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를 사용하면 XMPP 트래픽 전용의 로그 파일을 별도로 생성하도록 Instant Messaging을 구성할 수 있습니다.

log4j 방식 로깅을 사용하지 않으면 정규 시스템의 유지 보수 일부로 로그 파일을 정기적으로 검토하고 오래된 기록을 지워서 디스크 공간을 지나치게 차지하지 않도록 해야 합니다. 서버에서는 이 작업을 수행하지 않습니다.

log4j에 대한 자세한 내용은 Apache Logging Services 웹 사이트를 참조하십시오.

Instant Messaging 로그 파일 위치

Instant Messaging을 설치한 후에 configure 유틸리티를 실행할 때 로그 파일의 위치를 지정합니다. 일반적으로 로그 파일은 im-runtime-base/log 디렉토리에 저장됩니다. im-runtime-base 찾기에 대한 내용은 Instant Messaging 서버 디렉토리 구조를 참조하십시오.

또한 배포에서 로그 파일 생성에 log4j를 사용하는 경우 로거에서는 구성 중 지정한 디렉토리가 log4j 로그를 저장하는 기본 디렉토리로 사용됩니다.

Instant Messaging 구성 요소 로깅 수준

오류 로그의 관리 수준이나 우선 순위는 로그의 세밀함 정도를 정의합니다. 우선 순위 수준이 높을수록 높은 우선 순위(높은 심각도)의 이벤트만 로그 파일에 기록되므로 세밀도가 떨어집니다. 이와 반대로, 우선 순위가 낮으면 로그 파일에 더 많은 이벤트가 기록되므로 세밀도가 높아집니다.

log4j 기반 또는 매개 변수 기반의 로깅 사용 여부에 관계 없이 각 구성 요소별로 로깅 수준을 설정할 수 있습니다.

표 13–1은 구성 요소에 대한 로깅 수준을 설명합니다. 이 로깅 수준은 UNIX syslog 기능으로 정의된 수준의 하위 집합입니다.

표 13–1 Instant Messaging 구성 요소의 로깅 수준

수준 

설명 

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 로그 파일을 생성하기 위해 이 절에서 다루는 내용은 다음과 같습니다.

Instant Messaging 구성 요소 로깅 수준에서 설명한 로깅 수준은 log4j 로거에서 사용됩니다.

log4j에 대한 자세한 내용과 로그 파일 항목 구성(예: 크기, 백업 수 등)에 대한 지침은 Apache Logging Services 웹 사이트를 참조하십시오.

Instant Messaging log4j 구성 파일(log4j.conf) 위치

iim.confiim.log4j.config 매개 변수를 수정하여 log4j 구성 파일 log4j.conf의 위치를 변경할 수 있습니다. 이 매개 변수 값을 지정하지 않으면 로거가 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 매개 변수 기반 로깅 메커니즘에서 설명한 것과 같은 로깅 수준을 사용합니다.

Procedurelog4j 구성 파일(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
    

ProcedureInstant Messaging 구성 요소의 Log4j 로깅을 활성화 또는 비활성화하려면

기본적으로 로깅 정보가 생성되는 대상인 구성 요소에는 모두 log4j 로깅이 사용됩니다.

  1. log4j 로깅을 비활성화하려면 log4j.conflog4j.conf.template의 구성 요소 로깅 수준을 모두 OFF로 설정합니다.

    자세한 내용은 Instant Messaging의 log4j 로깅 수준을 설정하려면을 참조하십시오.

  2. log4j 로깅을 활성화하려면 log4j.conflog4j.conf.template의 구성 요소 로깅 수준을 모두 OFF가 아닌 값으로 설정합니다.

ProcedureInstant Messaging의 log4j 로깅 수준을 설정하려면

템플리트 파일이나 로그 구성 파일을 수정하여 로깅 수준을 설정할 수 있습니다. 그러나 구성 파일만 수정하는 경우 다음 번에 configure 유틸리티를 실행할 때 변경 내용을 덮어쓰게 됩니다. 이 문제를 방지하려면 구성 파일과 템플리트 파일을 모두 변경해야 합니다.

  1. log4j.conf.template를 엽니다.

    이 파일은 기본적으로 다음 위치에 저장됩니다.


    im-svr-base/lib
  2. 각 구성 요소에 대해 적용할 로깅 수준을 지정합니다.

    예를 들어 서버의 로깅 수준은 다음과 같이 설정합니다.


    log4j.logger.xmppd=log-level
    

    여기서 log-levelFATAL, ERROR, WARNING, INFO 또는 DEBUG 중 하나입니다.

    각 로깅 수준에 대한 자세한 내용은 표 13–1을 참조하십시오.

  3. log4j.conf.template를 저장하고 닫습니다.

  4. log4j.conf 구성 파일에 대해서도 이 절차를 반복합니다.

ProcedureInstant Messaging 구성 요소의 최대 log4j 로그 파일 크기를 지정하려면

템플리트 파일이나 로그 구성 파일을 수정하여 로깅 수준을 설정할 수 있습니다. 그러나 구성 파일만 수정하는 경우 다음 번에 configure 유틸리티를 실행할 때 변경 내용을 덮어쓰게 됩니다. 이 문제를 방지하려면 구성 파일과 템플리트 파일을 모두 변경해야 합니다.

  1. log4j.conf.template를 엽니다.

    이 파일은 기본적으로 다음 위치에 저장됩니다.


    im-svr-base/lib
  2. 각 구성 요소에 대해 구성 요소 로그 파일의 최대 크기를 지정합니다.

    예를 들어 서버 로그 파일의 크기를 설정하려면 다음을 입력합니다.


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

    여기서 A1은 서버의 기본 appender 아이디이며, max-logfile-size는 MB 단위의 크기입니다(예: 5MB).

  3. log4j.conf 구성 파일에 대해서도 이 절차를 반복합니다.

iim.conf 매개 변수를 사용한 Instant Messaging 구성 요소 로깅 구성

log4j를 사용하여 로그 파일을 생성하지 않는 경우 로깅 정보를 생성할 대상인 Instant Messaging의 각 구성 요소에 특정한 구성 매개 변수를 설정해야 합니다. 이 방법을 Instant Messaging의 매개 변수 기반 로깅이라고 합니다. 리디렉션 서버, 멀티플렉서, 캘린더 에이전트 및 워치독을 포함한 모든 서버 인스턴스에 매개 변수 기반 로깅을 사용할 수 있습니다.


주 –

향후 릴리스에서는 iim.conf 매개 변수 기반 로깅 메커니즘이 사용되지 않을 수 있습니다. 따라서 가능한 경우 log4j를 사용하십시오.


표 13–2에서는 각 Instant Messaging 구성 요소의 로깅 수준을 설정하는 데 사용되는 로그 파일 이름 및 iim.conf의 구성 매개 변수를 제공합니다.

표 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-baseAccess Manager를 설치한 디렉토리입니다.

등록 정보에 포함될 수 있는 값은 다음과 같습니다.

Sun Java System Portal Server 데스크탑 로그 파일(desktop.debug)과 아카이브 로그 파일(IMArchiveSearch.logIMArchiveSubmit.log)은 기본적으로 다음 위치에 저장됩니다.

Procedureiim.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. logconfig 매개 변수가 포함되도록 im.jnlp를 수정합니다.

  3. 수집할 데이터 유형에 따라 logconfig 매개 변수의 유형을 지정합니다.

  4. 자원 파일을 다시 배포합니다.

ProcedureInstant Messenger 로깅을 활성화하려면

  1. im.jnlp의 백업 복사본을 만듭니다.

  2. 텍스트 편집기에서 im.jnlp Instant Messenger 자원 파일을 엽니다.

  3. 다음 줄을 검색합니다.


    <application-desc main-class="com.iplanet.im.client.iIM">
  4. 섹션의 끝에 다음 인수를 추가합니다.


    <argument>logconfig=type</argument>
    

    여기서 typeALL, API, XMPPTRAFFIC 또는 CLIENT 중 하나입니다. 자세한 내용은 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.jnlplogconfig 매개 변수 값을 지정하여 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) 세부 정보만