日志系统
现在我们开始构造程序的日志系统,对于一个长时间运行的程序而言,出了问题没有办法即时的调试定位,只能依赖于打印的日志来排查。我对日志系统的期望如下:
日志能够同时打印到屏幕上和写入文件之中
日志要能够打印到屏幕上,这样程序一旦运行,能够确认开始的运作良好,可以放心离开了。日志还要能够写入到文件中,这样,长期运行的信息可以回过头来翻阅查找。
日志文件要有大小限制
由于程序长期运行,硬盘空间有限,所以得对日志文件的大小进行限制,超过规定大小,进行回卷
使用简单,就像使用print函数一样
自动包含时间戳和代码行等信息
通过以上的需求分析,我封装了Python自带的logging模块,使用的时候只需要使用下面的语句:
from ILog import log log("log message")
则打印信息如下:
2017-12-07 15:14:39,848 h1.py-3: log message
在封装过程中,遇到的难点和要点如下:
同时打印到屏幕和文件,需要增加控制台的handler和文件Handler
文件大小限制,使用RotatingFileHandler
给函数定义一个别名,把logging.info()函数重新定义为log()函数
这一点特别重要,一开始我采用的方法是定义一个log()函数,然后函数里面再调用logging.info(),但是打印的日志文件名和位置信息都是log()的不是调用log()的。想了好久,才用下面的简单方法解决了:
log=logging.info
Python语言还真是方便和强大啊!
参考资料如下:
python 的日志logging模块学习
https://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html
Python中的logging模块就这么用
http://blog.csdn.net/liuchunming033/article/details/39080457
Python logging模块详解
http://blog.csdn.net/zyz511919766/article/details/25136485/
关于 logging 的一些琐事
http://python.jobbole.com/84092/
BTS交易机器人(1)-选购VPS(BTS trading bot) https://steemit.com/cn/@brysj22952/bts-1-vps-bts-trading-bot
BTS交易机器人(2)-运行环境(BTS trading bot) https://steemit.com/cn/@brysj22952/bts-2-bts-trading-bot
BTS交易机器人(3)-Python升级(BTS trading bot) https://steemit.com/cn/@brysj22952/bts-3-python-bts-trading-bot
BTS交易机器人(4)-把Vim改造成简易Python编辑器(BTS trading bot) https://steemit.com/cn/@brysj22952/bts-4-vim-python-bts-trading-bot
BTS交易机器人(5)-安装pip3(BTS trading bot) https://steemit.com/cn/@brysj22952/bts-5-pip3-bts-trading-bot
BTS交易机器人(6)-安装uptick(BTS trading bot)https://steemit.com/cn/@brysj22952/bts-6-uptick-bts-trading-
BTS交易机器人(7)-安装其它依赖组件,配置uptick(BTS trading bot) https://steemit.com/cn/@brysj22952/2ymagn-bts-6-uptick-bts-trading-bot
BTS交易机器人(8)-发送邮件配置(BTS trading bot)https://steemit.com/cn/@brysj22952/bts-8-bts-trading-bot