syslog — Unix syslog 라이브러리 루틴
syslog — Unix syslog 라이브러리 루틴
이 모듈은 Unix syslog 라이브러리 루틴에 대한 인터페이스를 제공합니다. syslog 기능에 대한 자세한 설명은 Unix 매뉴얼 페이지를 참고하세요.
본문
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...')