Как изменить «тег» при входе в 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 
  • Установите pyUSB 0.4.3 на OSX Lion 10.7.3
  • Почему я получаю сообщение об ошибке: команда 'llvm-gcc-4.2' не удалась с статусом выхода 1
  • python 2.7 с mac osx lion: fn + удаление и управление + r
  • Использование модуля многопроцессорности python для ввода-вывода с pygame на Mac OS 10.7
  • Ошибки Virtualenvwrapper в Mac OS X Lion
  • Установка GDAL на Mac OS X Lion
  • numpy и scipy для предустановленного python 2.6.7 на Mac OS Lion
  • Ошибка при установке pylibmc using pip
  • Сообщение об ошибке для virtualenvwrapper на OS X Lion
  • Как установить привязки Python 2.7 для OpenCV с помощью MacPorts
  • Ошибка сборки Python 2.5.6 на Mac Lion
  • Python - лучший язык программирования в мире.