20201228-1 一个使用模块logging的程序

import logging 
logging.basicConfig(level=logging.INFO, filename='mylog.log') 
logging.info('Starting program') 
logging.info('Trying to divide 1 by 0') 
print(1/0) 
logging.info('The division succeeded') 
logging.info('Ending program')

运行这个程序时,将生成下面的日志文件(mylog.log): 
INFO:root:Starting program 
INFO:root:Trying to divide 1 by 0 

如你所见,试图将1除以0后什么都没有记录下来,因为这种错误将导致程序终止。 这是一种简单的错误,你可根据程序崩溃时打印的异常来跟踪确定问题出在什么地方。
不会导致程序终止、而只是让它行为异常的bug是难查找的, 但通过查看详尽的日志文件也许能够帮助你找出问题 出在什么地方。
这个示例中的日志文件并不是很详细,但通过合理地配置模块logging,可让日志以你希望 的方式运行。下面是几个这样的示例。  记录不同类型的条目(信息、调试信息、警告、自定义类型等)。
默认情况下,只记录警告。(这就是在代码清单中显式地将level设置为logging.INFO的原因所在。)  只记录与程序特定部分相关的条目。  记录有关时间、日期等方面的信息。  记录到其他位置,如套接字。  配置日志器,将一些或大部分日志过滤掉,这样无需重写程序就能获得所需的日志信息。模块logging非常复杂,文档中还提供了其他很多相关的信息

 

posted @ 2020-12-28 14:06  Malakh  阅读(121)  评论(0编辑  收藏  举报