【发布时间】:2017-10-22 01:14:42
【问题描述】:
我正在尝试导入一个函数,该函数初始化两个具有不同级别的不同日志处理程序。问题是对于下面的选项 1,我正在获取根记录器,而对于选项 2,我无法将任何日志打印到屏幕上。
有没有人有任何想法或建议可能会有所帮助?
选项 1 测试模块:
def set_logger(
app_name=argv[0][:-3]):
logging.basicConfig(
level=logging.DEBUG,
format='[%(levelname)s][%(module)s][%(asctime)s] - %(message)s',
filename="test.log"
)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('[%(levelname)s][%(module)s][%(asctime)s] - %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
选项 2 测试模块:
def set_logger(
app_name=argv[0][:-3]):
formatter = logging.Formatter('[%(levelname)s][%(module)s][%(asctime)s] - %(message)s')
logger = logging.getLogger(app_name)
stream_log = logging.StreamHandler()
stream_log.setLevel(logging.INFO)
stream_log.setFormatter(formatter)
file_log = logging.FileHandler("test.log")
file_log.setLevel(logging.DEBUG)
file_log.setFormatter(formatter)
logger.addHandler(stream_log)
logger.addHandler(file_log)
在脚本中:
from Module import set_logger
import logging
if __name__ == "__main__"
set_logger()
logging.info("start_app")
我在这里错过了什么?
【问题讨论】:
-
你打电话给
getLogger(''),所以你得到了root,对吧? -
那是正确的 - 但是当我通过 sys.argv[0] 时,它只是不打印任何东西。或者即使我要传递 name 它也会停止将日志生成到流媒体
标签: python python-3.x logging