【问题标题】:python logging to multiple filespython记录到多个文件
【发布时间】:2011-07-31 11:05:57
【问题描述】:

是否有人有将 python 登录到 2 个或更多不同日志文件的示例。

例如,我想记录到“/tmp/foo.log”和“/tmp/bar.log”

提前致谢

T

【问题讨论】:

    标签: python django logging


    【解决方案1】:

    这是一个例子:

    import logging
    logger1 = logging.getLogger('1')
    logger1.addHandler(logging.FileHandler('/tmp/logger1'))
    logger2 = logging.getLogger('2')
    logger2.addHandler(logging.FileHandler('/tmp/logger2'))
    
    logger1.error('1')
    logger2.error('2')
    

    那么,

     $ cat /tmp/logger1
     1
     $ cat /tmp/logger2
     2
    

    【讨论】:

      【解决方案2】:

      这是一个基于 logging.html 示例的完整工作示例。需要注意的主要“问题”是您必须确保为根记录器设置日志级别,以便与文件正确交互。

      import logging
      
      logging.getLogger('').setLevel(logging.DEBUG)
      def create_log_file(filename, level=logging.INFO):
          handler = logging.FileHandler(filename)
          handler.setLevel(level)
          formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
          handler.setFormatter(formatter)
          logging.getLogger('').addHandler(handler)
      
      create_log_file('/temp/log1.log', logging.DEBUG)
      create_log_file('/temp/log2.log', logging.INFO)
      
      # Now, we can log to the root logger, or any other logger. First the root...
      logging.info('Jackdaws love my big sphinx of quartz.')
      
      # Now, define a couple of other loggers which might represent areas in your
      # application:
      
      logger1 = logging.getLogger('myapp.area1')
      logger2 = logging.getLogger('myapp.area2')
      
      logger1.debug('Quick zephyrs blow, vexing daft Jim.')
      logger1.info('How quickly daft jumping zebras vex.')
      logger2.warning('Jail zesty vixen who grabbed pay from quack.')
      logger2.error('The five boxing wizards jump quickly.')
      

      【讨论】:

      • 但是在这个例子中,所有的根消息都会出现在 log1.log 和 log2.log 中?
      • 那只是一个例子。如果您愿意,可以将处理程序附加到不同的记录器。
      • 你为什么要攻击这篇文章,我只是想举个例子,邓肯的文章比文档对我的帮助要好得多。所以感谢邓肯的帮助。但是还有一个问题,是否可以在每个记录器上轮换一次?
      • @Hein:尝试 Python 3.2 版本的文档,它们可能比 2.7 版本更有意义:docs.python.org/py3k/library/logging.html。是的,logging 提供了一个RotatingFileHandler,让您可以轻松地轮换日志文件。
      猜你喜欢
      • 2021-08-01
      • 2011-01-03
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      相关资源
      最近更新 更多