Как изменить «тег» при входе в syslog из «Неизвестно»?

Я вхожу в syslog в порядке, но не могу определить, как указать «тег». В настоящее время в журнале записывается следующее:

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

но я хочу, чтобы «Неизвестный» был настроен на что-то. например:

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

Если я использую logger из командной строки, его можно контролировать с помощью опции -t

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

Но запись с python я, похоже, не могу указать тег:

 import logging logging.info("FooBar") 

Просто дает мне тег «Неизвестный», показанный наверху. Я определил эту спецификацию:

 LOGGING = { 'version': 1, 'formatters': { 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'syslog':{ 'address': '/var/run/syslog', 'class': 'logging.handlers.SysLogHandler', 'facility': 'local2', 'formatter': 'simple' } }, 'loggers': { '': { 'handlers': ['syslog'], 'level': 'INFO', } } } 

Как указать тег, чтобы он не всегда был «Неизвестным»?

2 Solutions collect form web for “Как изменить «тег» при входе в syslog из «Неизвестно»?”

Простой способ маркировки сообщений журнала

Сделайте это: 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') 

Я добавляю это только ради завершения, хотя ответ @ sasha абсолютно правильный.

Если вы случайно регистрируете сообщения в syslog с помощью syslog.syslog , вы можете установить тег, используя функцию syslog.openlog :

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

Возвращаясь к оболочке linux:

 $ tail -f /var/log/syslog Sep 7 07:01:58 dev-balthazar foo: bar 
  • Установка numpy Lion с Python 2.7?
  • sudo требуется для easy_install pip в OS X Lion?
  • Как поместить окно tkinter поверх других?
  • numpy и scipy для предустановленного python 2.6.7 на Mac OS Lion
  • Правильно Установка и настройка Python / Pyside / PyDev на OS X Lion (и, вероятно, будущие версии OS X)
  • Как использовать libxml2 с python на osx lion?
  • Ошибка при установке pylibmc using pip
  • Как установить JPype на OS X Lion для использования с Neo4j?
  • Python - лучший язык программирования в мире.