syslog — Unix syslog 라이브러리 루틴

syslog — Unix syslog 라이브러리 루틴

이 모듈은 Unix syslog 라이브러리 루틴에 대한 인터페이스를 제공합니다. syslog 기능에 대한 자세한 설명은 Unix 매뉴얼 페이지를 참고하세요.

출처: Python documentation

본문

availability: Unix, not WASI, not iOS.

이 모듈은 시스템 syslog 계열 루틴을 감쌉니다(wrap). syslog 서버와 통신할 수 있는 순수 Python 라이브러리는 logging.handlers 모듈에 SysLogHandler로 제공됩니다.

syslog.syslog(message)

syslog.syslog(priority, message)

문자열 message를 시스템 로거로 보냅니다. 필요한 경우 끝에 줄바꿈이 추가됩니다. 각 메시지는 facility(facility)와 level로 구성된 우선순위로 태그가 지정됩니다. 기본값이 LOG_INFO인 선택적 priority 인자가 메시지 우선순위를 결정합니다. facility가 논리합(logical-or, LOG_INFO|LOG_USER)을 사용하여 priority에 인코딩되지 않으면, openlog() 호출에서 주어진 값이 사용됩니다.

syslog() 호출 이전에 openlog()가 호출되지 않았다면, openlog()가 인자 없이 호출됩니다.

감사 이벤트 syslog.syslog가 인자 priority, message로 발생시킵니다.

versionchanged: 3.2에서 이전 버전에서는 syslog() 호출 이전에 openlog()가 호출되지 않았다면 자동으로 호출되지 않고, syslog 구현이 openlog()를 호출하도록 위임했습니다.

versionchanged: 3.12에서 이 함수는 하위 인터프리터(subinterpreter)에서 제한됩니다. 서브인터프리터에서 syslog()를 사용하기 전에 메인 인터프리터에서 openlog()를 호출해야 합니다. 그렇지 않으면 RuntimeError를 발생시킵니다.

syslog.openlog([ident[, logoption[, facility]]])

이후 syslog() 호출의 로깅 옵션은 openlog()를 호출하여 설정할 수 있습니다. 로그가 현재 열려 있지 않으면 syslog()는 인자 없이 openlog()를 호출합니다.

선택적 ident 키워드 인자는 모든 메시지 앞에 붙는 문자열이며, 기본값은 앞의 경로 구성 요소가 제거된 sys.argv[0]입니다. 선택적 logoption 키워드 인자(기본값은 0)는 비트 필드입니다 — 결합할 수 있는 가능한 값은 아래를 참고하세요. 선택적 facility 키워드 인자(기본값은 LOG_USER)는 facility가 명시적으로 인코딩되지 않은 메시지의 기본 facility를 설정합니다.

감사 이벤트 syslog.openlog가 인자 ident, logoption, facility로 발생시킵니다.

versionchanged: 3.2에서 이전 버전에서는 키워드 인자가 허용되지 않았고 ident가 필수였습니다.

versionchanged: 3.12에서 이 함수는 서브인터프리터에서 제한됩니다. 메인 인터프리터에서만 호출할 수 있습니다. 서브인터프리터에서 호출하면 RuntimeError를 발생시킵니다.

syslog.closelog()

syslog 모듈 값을 재설정하고 시스템 라이브러리 closelog()를 호출합니다.

이로 인해 모듈은 처음 가져왔을 때처럼 동작합니다. 예를 들어 첫 번째 syslog() 호출에서 openlog()가 호출되고(openlog()가 아직 호출되지 않은 경우), ident 및 기타 openlog() 매개변수가 기본값으로 재설정됩니다.

감사 이벤트 syslog.closelog가 인자 없이 발생시킵니다.

versionchanged: 3.12에서 이 함수는 서브인터프리터에서 제한됩니다. 메인 인터프리터에서만 호출할 수 있습니다. 서브인터프리터에서 호출하면 RuntimeError를 발생시킵니다.

syslog.setlogmask(maskpri)

우선순위 마스크를 maskpri로 설정하고 이전 마스크 값을 반환합니다. maskpri에 설정되지 않은 우선순위 레벨을 가진 syslog() 호출은 무시됩니다. 기본값은 모든 우선순위를 기록하는 것입니다. LOG_MASK(pri) 함수는 개별 우선순위 pri에 대한 마스크를 계산합니다. LOG_UPTO(pri) 함수는 pri까지를 포함한 모든 우선순위에 대한 마스크를 계산합니다.

감사 이벤트 syslog.setlogmask가 인자 maskpri로 발생시킵니다.

다음 상수들을 정의합니다:

  • 우선순위 레벨(높음에서 낮음): LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG
  • Facility: LOG_AUTH, LOG_AUTHPRIV, LOG_CRON, LOG_DAEMON, LOG_FTP, LOG_INSTALL, LOG_KERN, LOG_LAUNCHD, LOG_LPR, LOG_MAIL, LOG_NETINFO, LOG_NEWS, LOG_RAS, LOG_REMOTEAUTH, LOG_SYSLOG, LOG_USER, LOG_UUCP, LOG_LOCAL0~LOG_LOCAL7. (LOG_AUTHPRIV, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS<syslog.h>에서의 가용성에 따라 달라집니다.)
    • versionchanged: 3.13에서 LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS, LOG_LAUNCHD가 추가되었습니다.

  • 로그 옵션: LOG_PID, LOG_CONS, LOG_NDELAY, LOG_ODELAY, LOG_NOWAIT, LOG_PERROR. (LOG_ODELAY, LOG_NOWAIT, LOG_PERROR<syslog.h>에서의 가용성에 따라 달라집니다.)

예제

간단한 예제

간단한 예제 몇 가지:

import syslog

syslog.syslog('Processing started')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Processing started')

일부 로그 옵션을 설정하는 예제입니다. 로그된 메시지에 프로세스 ID를 포함하고, 메일 로깅에 사용되는 대상 facility에 메시지를 기록합니다:

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')

더 알아보기 (Learn more)