如果使用logger=logging.getLogger(“Name”)创建logger对象,则无法将filemode从append('a')更改为write('w')。如果我将根日志与basicConfig一起使用,我可以这样做,但是当我只需要从调试级别开始的自己的消息时,就会得到很多系统调试消息。
我希望(1)将我自己的logger对象的filemode更改为'w' 或者(2)向根记录器添加筛选器。甚至可以从根日志中筛选出这些调试消息吗?
def create_log():
# create logger for "Sample App"
logger = logging.getLogger('automated_testing')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler('results.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler(stream=sys.stdout)
ch.setLevel(logging.DEBUG)
# create formatter and add it to the handlers
formatter = logging.Formatter('[%(asctime)s] %(levelname)8s --- %(message)s ' +
'(%(filename)s:%(lineno)s)',datefmt='%Y-%m-%d %H:%M:%S')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(ch)
logger.addHandler(fh)
return logger
类似于:
打印到标准输出:
写入(不追加)results.log:
DEBUG
+记录在results.txt中,而只有INFO
+发送到stdout。请注意,
NOTSET
日志条目会被传递到根日志记录器,然后,由于根日志记录器上没有任何处理程序,因此会被丢弃。相关问题 更多 >
编程相关推荐