1、首先导入日志模块
import logging
2、正常开发需要把日志打印到控制台,使用下面配置就可以了。
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s %(levelname)s %(message)s',
datefmt='%a %d %b %Y %H:%M:%S',
filemode='a')
3、如果需要打印到文件,就要设置一个handler,其实上面的配置加个文件名称也可以打印到文件,但是解决不了中文乱码问题。
fh = logging.FileHandler('xxx-log.log', mode='a', encoding='utf-8', delay=False)
fh.setLevel(logging.INFO)
fmt = logging.Formatter('%(asctime)s %(filename)s %(levelname)s %(message)s')
fh.setFormatter(fmt)
self.logger.handlers.append(fh)
如代码中标记的两处,标记1指定utf-8编码,标记2是把handler添加到日志里面。
我使用的python3.6通过阅读日志源码发现,loggin初始化handler是个List容器。
网上也有说修改logging.basicConfig的源码的,我个人不建议这样解决,因为可移植性差。
可能还有更好的方法,大家可以给我留言进行交流。