我遇到了python的logging
lib问题。使用下面的代码,我创建了一个“记录器”:
logger = logging.getLogger()
def logger_init(level):
try:
syslog = SysLogHandler(address=LOG_DESTINATION)
except Exception, ex:
return
formatter = logging.Formatter('%(module)s[%(process)d]: %(message)s')
syslog.setFormatter(formatter)
syslog.setLevel(level)
logger.addHandler(syslog)
我称之为:
logger.debug(SOME_STR_TO_BE_LOGGED)
或者喜欢:
logger.error(SOME_STR_TO_BE_LOGGED)
我用以下内容初始化记录器:
log_level = logging.ERROR
if options.DEBUG_LOG: #### This comes from options parser and it is True.
log_level = logging.DEBUG
logger_init(log_level)
问题是error
和warn
运行良好,但info
和debug
方法都没有向syslog打印任何内容。
我正在使用syslog-ng并设计了我的过滤器,即它会接受从debug
到emerg
的每个级别。
这是什么问题?有什么想法吗?
答案 0 :(得分:29)
您还必须设置记录器的级别,而不仅仅是处理程序。
将此添加到您的logger_init
:
logger.setLevel(level)