BTS交易机器人(9)-日志系统(BTS trading bot)

in cn •  7 years ago 

​ 日志系统

​ 现在我们开始构造程序的日志系统,对于一个长时间运行的程序而言,出了问题没有办法即时的调试定位,只能依赖于打印的日志来排查。我对日志系统的期望如下:

  • 日志能够同时打印到屏幕上和写入文件之中

    日志要能够打印到屏幕上,这样程序一旦运行,能够确认开始的运作良好,可以放心离开了。日志还要能够写入到文件中,这样,长期运行的信息可以回过头来翻阅查找。

  • 日志文件要有大小限制

    由于程序长期运行,硬盘空间有限,所以得对日志文件的大小进行限制,超过规定大小,进行回卷

  • 使用简单,就像使用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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!