zoukankan      html  css  js  c++  java
  • logging常用handler【转】

    一、StreamHandler

    流handler——包含在logging模块中的三个handler之一。

    能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就是能够支持write()和flush()方法的对象)。

    只有一个参数:

    日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr。

    二、FileHandler

    logging模块自带的三个handler之一。继承自StreamHandler。将日志信息输出到磁盘文件上。

    构造参数:

    模式默认为append,delay为true时,文件直到emit方法被执行才会打开。默认情况下,日志文件可以无限增大。

    三、NullHandler

    空操作handler,logging模块自带的三个handler之一。
    没有参数。

    四、WatchedFileHandler

    位于logging.handlers模块中。用于监视文件的状态,如果文件被改变了,那么就关闭当前流,重新打开文件,创建一个新的流。由于newsyslog或者logrotate的使用会导致文件改变。这个handler是专门为linux/unix系统设计的,因为在windows系统下,正在被打开的文件是不会被改变的。
    参数和FileHandler相同:

    五、RotatingFileHandler

    位于logging.handlers支持循环日志文件。

    class logging.handlers.RotatingFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0)

    参数maxBytes和backupCount允许日志文件在达到maxBytes时rollover.当文件大小达到或者超过maxBytes时,就会新创建一个日志文件。上述的这两个参数任一一个为0时,rollover都不会发生。也就是就文件没有maxBytes限制。backupcount是备份数目,也就是最多能有多少个备份。命名会在日志的base_name后面加上.0-.n的后缀,如example.log.1,example.log.1,…,example.log.10。当前使用的日志文件为base_name.log。

    六、TimedRotatingFileHandler

    定时循环日志handler,位于logging.handlers,支持定时生成新日志文件。

    class logging.handlers.TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False)

    参数when决定了时间间隔的类型,参数interval决定了多少的时间间隔。如when=‘D’,interval=2,就是指两天的时间间隔,backupCount决定了能留几个日志文件。超过数量就会丢弃掉老的日志文件。

    when的参数决定了时间间隔的类型。两者之间的关系如下:

    utc参数表示UTC时间。

    七、其他handler——SocketHandler、DatagramHandler、SysLogHandler、NtEventHandler、SMTPHandler、MemoryHandler、HTTPHandler

    这些handler都不怎么常用,所以具体介绍就请参考官方文档 其他handlers

    下面使用简单的例子来演示handler的使用:

    例子一——不使用配置文件的方式(StreamHandler):

    输出到控制台的结果:

    例子二——使用配置文件的方式(TimedRotatingFileHandler) :

    log.conf 日志配置文件:

    获取logger方法:

    配置logger并且调用:

    控制台和日志文件中都会输出:

  • 相关阅读:
    python kivy 简单入门
    django 入门实例
    window docker安装
    apache进程和用户请求的关系
    php cookie工作原理
    react-router 简单的nginx配置
    node单线程支撑高并发原理(node异步I/O)
    知识图谱
    java
    java
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/14142580.html
Copyright © 2011-2022 走看看