大量博客在介绍logging模块的使用,但少有关于跨模块或跨目录引用的示例,本人写一个,一个加深自己印象,另外就是有相似困惑的同学也可以参考一下,此为我个人非官方玩法,希望没有对你误导
很深,废话不多说,上代码:
#模块位于publicmylogger.py下
1 import logging 2 # 创建一个logger 3 logger = logging.getLogger('hadoop') 4 logger.setLevel(logging.DEBUG) 5 6 # 创建一个handler,用于写入日志文件 7 log_file = 'hadoop_toolspublicops.log' 8 fh = logging.FileHandler(log_file) 9 fh.setLevel(logging.INFO) 10 11 # 再创建一个handler,用于输出到控制台 12 ch = logging.StreamHandler() 13 ch.setLevel(logging.INFO) 14 15 # 定义handler的输出格式 16 formatter = logging.Formatter('[%(asctime)s][%(thread)d][%(filename)s][line: %(lineno)d][%(levelname)s] %(message)s') 17 fh.setFormatter(formatter) 18 ch.setFormatter(formatter) 19 20 # 给logger添加handler 21 logger.addHandler(fh) 22 logger.addHandler(ch) 23 # # 记录一条日志 24 logger.debug('this log come from public mylogger module')
#别的模块要引用怎么办法?
from public.mylogger import * logger.setLevel('INFO') logger.info("TEST WARN IMPORT ")