zoukankan      html  css  js  c++  java
  • Python LoggerAdpater类

    Logger子类:

    import logging

    # create logger
    module_logger = logging.getLogger('spam_application.auxiliary')

    class Auxiliary:
    def __init__(self):
    self.logger = logging.getLogger('spam_application.auxiliary.Auxiliary')
    self.logger.info('creating an instance of Auxiliary')
    def do_something(self):
    self.logger.info('doing something')
    a = 1 + 1
    self.logger.info('done doing something')

    def some_function():
    module_logger.info('received a call to "some_function"')

    Main函数:

    import logging
    import auxiliary_module

    # create logger with 'spam_application'
    logger = logging.getLogger('spam_application')
    logger.setLevel(logging.DEBUG)
    # create file handler which logs even debug messages
    fh = logging.FileHandler('spam.log')
    fh.setLevel(logging.DEBUG)
    # create console handler with a higher log level
    ch = logging.StreamHandler()
    ch.setLevel(logging.ERROR)
    # create formatter and add it to the handlers
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    # add the handlers to the logger
    logger.addHandler(fh)
    logger.addHandler(ch)

    logger.info('creating an instance of auxiliary_module.Auxiliary')
    a = auxiliary_module.Auxiliary()
    logger.info('created an instance of auxiliary_module.Auxiliary')
    logger.info('calling auxiliary_module.Auxiliary.do_something')
    a.do_something()
    logger.info('finished auxiliary_module.Auxiliary.do_something')
    logger.info('calling auxiliary_module.some_function()')
    auxiliary_module.some_function()
    logger.info('done with auxiliary_module.some_function()')

    输出到文件spam.log

    2015-06-30 20:08:37,335 - spam_application - INFO - creating an instance of auxiliary_module.Auxiliary
    2015-06-30 20:08:37,335 - spam_application.auxiliary.Auxiliary - INFO - creating an instance of Auxiliary
    2015-06-30 20:08:37,336 - spam_application - INFO - created an instance of auxiliary_module.Auxiliary
    2015-06-30 20:08:37,336 - spam_application - INFO - calling auxiliary_module.Auxiliary.do_something
    2015-06-30 20:08:37,336 - spam_application.auxiliary.Auxiliary - INFO - doing something
    2015-06-30 20:08:37,337 - spam_application.auxiliary.Auxiliary - INFO - done doing something
    2015-06-30 20:08:37,337 - spam_application - INFO - finished auxiliary_module.Auxiliary.do_something
    2015-06-30 20:08:37,337 - spam_application - INFO - calling auxiliary_module.some_function()
    2015-06-30 20:08:37,337 - spam_application.auxiliary - INFO - received a call to "some_function"
    2015-06-30 20:08:37,338 - spam_application - INFO - done with auxiliary_module.some_function()

  • 相关阅读:
    Python数据库操作、Python DB API、数据库连接对象connection、数据库游标对象cursor
    django开发Web集成 DjangoUeditor 富文本编辑器
    使用requests库获取GitHub网站API接口数据,显示到pygal柱形图
    使用matplotlib.plot绘制随机点位图
    使用plot绘制随机漫步点位图
    使用maplotlib曲线图,显示每天最低、最高温的曲线图
    使用random随机100次,统计骰子每个点子出现次数的pygal图表
    使用pygal.maps.world库读取JSON格式文件,显示世界人口地图图示
    使用pygal.maps.world库读取CSV、JSON格式文件,显示世界GDP地图图示
    生产者,消费者 多线程
  • 原文地址:https://www.cnblogs.com/edisonxiang/p/4611471.html
Copyright © 2011-2022 走看看