3
我有一个利用多处理来提高效率的python程序和一个为每个进程创建一个记录器的函数。该记录器功能如下:Python日志记录setLevel()没有生效
import logging
import os
def create_logger(app_name):
"""Create a logging interface"""
# create a logger
if logging in os.environ:
logging_string = os.environ["logging"]
if logging_string == "DEBUG":
logging_level = loggin.DEBUG
else if logging_string == "INFO":
logging_level = logging.INFO
else if logging_string == "WARNING":
logging_level = logging.WARNING
else if logging_string == "ERROR":
logging_level = logging.ERROR
else if logging_string == "CRITICAL":
logging_level = logging.CRITICAL
else:
logging_level = logging.INFO
logger = logging.getLogger(app_name)
logger.setLevel(logging_level)
# Console handler for error output
console_handler = logging.StreamHandler()
console_handler.setLevel(logging_level)
# Formatter to make everything look nice
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# Add the handlers to the logger
logger.addHandler(console_handler)
return logger
我的处理功能是这样的:
import custom_logging
def do_capture(data_dict_access):
"""Process data"""
# Custom logging
LOGGER = custom_logging.create_logger("processor")
LOGGER.debug("Doing stuff...")
但是,不管是什么日志环境变量设置为,我还是收到了调试日志消息安慰。为什么我的日志记录级别没有生效,当然,对setLevel()的调用应该停止记录调试消息?
首先:'其他if'应该是'elif' –
@HaiVu奇怪,我不是从得到一个语法错误。无论如何改变了,仍然没有区别 – CyberJacob
我发布了一个解决方案,但仍试图找出为什么你的代码不工作。 –