Nom*_*der 5 python logging python-2.7
我有多个python文件,我需要从多个python文件登录到单个公共日志文件。我不想使用日志配置文件来格式化或json字典。每个python文件都被导入到主python文件kickstart.py中,它们都从kickstart.py调用。我想将来自各种python模块的所有消息(从主python脚本调用)记录到单个日志文件中。请建议使用方法。我通过了python食谱,但这对我没有帮助。
谢谢
您可以使用logging模块来完成。在您的一个基本模块中定义此函数,然后在您要记录某些内容的每个模块中调用它。
import logging
def get_logger(name):
log_format = '%(asctime)s %(name)8s %(levelname)5s %(message)s'
logging.basicConfig(level=logging.DEBUG,
format=log_format,
filename='dev.log',
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
console.setFormatter(logging.Formatter(log_format))
logging.getLogger(name).addHandler(console)
return logging.getLogger(name)
Run Code Online (Sandbox Code Playgroud)
然后从要记录的每个模块中,使用所需的记录器名称调用此函数,所有模块将打印到该filename参数定义的相同日志文件中。
<base.py>
logger = get_logger('base')
logger.info('testing logger from module base')
<module2.py>
logger = get_logger('module2')
logger.info('testing logger from module module2')
<dev.log>
2017-08-11 00:34:00,361 base INFO testing logger from module base
2017-08-11 00:34:00,361 module2 INFO testing logger from module module2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2516 次 |
| 最近记录: |