标签:ref 崩溃 程序 org 日志 block stack html lock
More than
每次用 terminal debug 时都要手动在各种可能出现 bug 的地方 print 相关信息来确认 bug 的位置;
每次完成 debug 后为了避免输出太多细节信息和代码整洁,又需要把几个关键位置的 print 注释掉甚至删掉;
当下次出 bug 时,继续上述步骤。。。
有没有更好的方法呢?
Python 3 中提供了非常方便的日志记录库 logging
,可以记录不同等级(level)的日志信息。系统默认的等级有:
logging
中的默认等级是 WARNING
;亦即,logging.level
缺省时,等级低于 WARNING
的信息(DEBUG
、INFO
)不会被日志记录。
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug(‘Message from DEBUG‘)
logging.info(‘Message from INFO‘)
logging.warning(‘Message from WARNING‘)
运行后将在 stdout 显示日志信息:
DEBUG:root:Message from DEBUG
INFO:root:Message from INFO
WARNING:root:Message from WARNING
import logging
logging.basicConfig(filename=‘example.log‘, level=logging.DEBUG)
logging.debug(‘Message from DEBUG‘)
logging.info(‘Message from INFO‘)
logging.warning(‘Message from WARNING‘)
运行后查看文件 example.log:
$ cat example.log
将看到日志信息。
注意:文件操作模式默认为 “append”,即不覆盖旧文件内容。
import logging
logging.basicConfig(filename=‘example.log‘, filemode=‘w‘, level=logging.DEBUG)
logging.debug(‘Message from DEBUG‘)
logging.info(‘Message from INFO‘)
logging.warning(‘Message from WARNING‘)
import logging
logging.basicConfig(filename=‘data_conversion.log‘,
filemode=‘w‘,
format=‘%(asctime)s [%(levelname)s]: %(message)s‘,
datefmt=‘%Y/%m/%d %I:%M:%S %p‘,
level=logging.INFO)
logging.debug(‘Message from DEBUG‘)
logging.info(‘Message from INFO‘)
logging.warning(‘Message from WARNING‘)
日志文件内容为:
2019/01/28 10:26:29 PM [DEBUG]: Message from DEBUG
2019/01/28 10:26:29 PM [INFO]: Message from INFO
2019/01/28 10:26:29 PM [WARNING]: Message from WARNING
根据以上内容就可以简单地追踪程序流程和关键信息了。
Written with StackEdit.
标签:ref 崩溃 程序 org 日志 block stack html lock
原文地址:https://www.cnblogs.com/LexLuc/p/10332090.html