Python进阶篇--logging模块的使用(一)

一个好的程序必定会有一个好的log模块,这是软件设计的重点之一。一个好的log模块可以让你快速定位问题所在,让维护的感到神清气爽,编写便赞叹。“さすが、先輩です”

话不多说,言归正传。一起来探索一下python 的logging 模块。
先从简单的来说起。

import logging


def main():

    # config the logging module
    logging.basicConfig(
        level=logging.ERROR,
        format="%(asctime)s %(levelname)-8s %(name)-15s %(message)s"
    )

    hostname = 'www.python.org'
    item = 'spam'
    filename = 'data.csv'
    mode = 'r'

    logging.critical("Host %s is unknown", hostname)
    logging.error("Couldn't find %s", item)
    logging.warning("Feature is deprecated.")
    logging.info("opening file %r mode=%r", filename, mode)
    logging.debug("Got here")


if __name__ == "__main__":
    main()

运行结果如下:

2020-05-30 17:07:24,341 CRITICAL root Host www.python.org is unknown
2020-05-30 17:07:24,341 ERROR root Couldn’t find spam

上面是python的logging库最简单使用案例。没有更简单的了。
这里重点说一下logging模块的格式,python 有很多内置的格式,可以使用。传送门logging Format

这种方式有没有感觉到很不好用的地方,每次都要不停修改logging配置部分,如何过这个python文件被打包成exe文件,是不是,logging相关的配置就完全不能改了,是不是很坑?那要怎么解决呢,当然是配置文件。
下面是logconfig.conf文件的内容。 具体如何去写一个logconfig.conf可以参考夏下边的文章
如何写logging configure 文件

[loggers]
keys=root

[handlers]
keys=defaultHandler

[formatters]
keys=defaultFormatter

[logger_root]
level=INFO
handlers=defaultHandler
qualname=root

[handler_defaultHandler]
class=FileHandler
formatter=defaultFormatter
args=('app.log', 'a')

[formatter_defaultFormatter]
format=%(levelname)s:%(name)s:%(message)s

接下来是主程序的逻辑

import logging
import logging.config


def main():

    # config the logging module
    logging.config.fileConfig('logconfig.ini')

    hostname = 'www.python.org'
    item = 'spam'
    filename = 'data.csv'
    mode = 'r'

    logging.critical("Host %s is unknown", hostname)
    logging.error("Couldn't find %s", item)
    logging.warning("Feature is deprecated.")
    logging.info("opening file %r mode=%r", filename, mode)
    logging.debug("Got here")


if __name__ == "__main__":
    main()

最终log会被打印到app.log文件中。
今天先到这里,logging模块还有及其丰富的配置,这里只讲到非常非常一般的情况。后续有时间再来深度挖掘一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值