2012-03-03 1 views
13

나는 벌써 syslog에 로깅하고 있지만 '태그'를 지정하는 방법을 알아낼 수는 없다. 로깅은 현재 다음을 게시합니다.'알 수 없음'에서 syslog에 로깅 할 때 '태그'를 변경하는 방법은 무엇입니까?

Mar 3 11:45:34 TheMacMini Unknown: INFO FooBar 

하지만 '알 수 없음'을 설정해야합니다. 예 :

Mar 3 11:45:34 TheMacMini Foopybar: INFO FooBar 

나는 그것이 -t 옵션을 통해 제어 할 수있는 명령 줄에서 logger을 사용하는 경우 ...

$ logger -t Foopybar FooBar && tail -1 /var/log/system.log 
Mar 3 12:05:00 TheMacMini Foopybar[4566]: FooBar 

그러나 파이썬에서 로그인이 난을 지정할 수하지 않는 것 태그 :

import logging 
logging.info("FooBar") 

상단에 '알 수 없음'태그가 표시됩니다. 이 사양을 정의했습니다 :

태그를 항상 "알 수 없음"으로 지정하는 방법은 무엇입니까?

답변

12

간단한

는이 작업을 수행 태그 로그 메시지의 방법 : logging.info("TagName: FooBar") 하고이 메시지가 태그 될 것입니다! "TagName :"으로 모든 메시지를 시작하면됩니다. 그리고 이것은 물론 그다지 우아하지 않습니다.

더 나은 솔루션

설정 로거 :

log = logging.getLogger('name') 
address=('log-server',logging.handlers.SYSLOG_UDP_PORT) 
facility=logging.handlers.SysLogHandler.LOG_USER 
h=logging.handlers.SysLogHandler(address,facility) 
f = logging.Formatter('TagName: %(message)s') 
h.setFormatter(f) 
log.addHandler(h) 

그리고 그것을 사용 :

log.info('FooBar') 
4

내가 @ 사샤의 대답에도 불구하고, 단지 완성을 위해이 추가 해요 절대적으로 맞다.

당신이 syslog.syslog를 사용하여 직접 syslog에 메시지를 기록하는 일이 있다면, 당신은 syslog.openlog 기능을 사용하여 태그를 설정할 수 있습니다 :이 권리입니다

$ tail -f /var/log/syslog 
Sep 7 07:01:58 dev-balthazar foo: bar 
+0

: 리눅스 쉘에 다시가는

import syslog syslog.openlog('foo') syslog.syslog('bar') 

을 대답 – shrewmouse

관련 문제