2012年1月12日 星期四

Python write syslog from config file with logging

Config file:
[loggers]
keys=root,SYS

[logger_root]
level=NOTSET
handlers=screen

[logger_SYS]
handlers=local,remote
qualname=compiler.parser
propagate=1

# Ref: http://docs.python.org/library/logging.html#formatter-objects
[formatters]
keys=simple,complex

[formatter_simple]
format=%(name)s:%(process)d - %(levelname)s - %(message)s

[formatter_complex]
format=%(name)s:%(process)d - %(levelname)s - %(pathname)s:%(lineno)d - %(message)s

# Define handler setting
# Ref: http://docs.python.org/library/logging.handlers.html
[handlers]
keys=screen,local,remote

[handler_screen]
class=StreamHandler
formatter=complex
args=(sys.stdout,)

[handler_local]
class=handlers.SysLogHandler
formatter=complex
args=("/dev/log",)

[handler_remote]
class=handlers.SysLogHandler
formatter=complex
#args=((,),)
args=(("172.16.1.1", 514),)


Python program:
import logging
import logging.config

logging.config.fileConfig("/path/to/config")
logger = logging.getLogger("UI")
logger.debug("This is debug message")
logger.info("This is info message")
logger.warn("This is warning message")
logger.error("This is error message")
logger.critical("This is critical message")

沒有留言:

張貼留言