zoukankan      html  css  js  c++  java
  • 日志 logging模块

    一.logging模块简介

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径等;
    与print相比,具备如下优点:
    1. 可以通过设置不同的日志等级,只输出重要信息,而不必显示大量的调试信息;
    2. print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者
    决定将信息输出到什么地方,以及怎么输出;
     
     
    二.logging模块的基本使用
    1.logging有五个级别
    logging.debug('this is debug message')
    logging.info('this is info message')
    logging.warning('this is warning message')
    logging.error('this is error message')
    logging.critical('this is critical message')

    控制台输出日志

     默认的日志格式为:日志级别:Logger名称:用户输出信息

    日志默认级别为WARBING

    2.配置日志级别,日志格式,输出的位置

     1 import logging
     2 logging.basicConfig(level=logging.INFO,              #只能控制一个文件
     3                     format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
     4                     datefmt='%a, %d %b %Y %H:%M:%S',
     5                     filename='test.log',
     6                     filemode='w')
     7 logger = logging.getLogger('tang')
     8 
     9 logging.debug('this is debug message')
    10 logging.info('this is info message')
    11 logging.warning('this is warning message')
    12 logging.error('this is error message')
    13 logging.critical('this is critical message')
    fifilename:   用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指
    定的文件中。
    fifilemode:   文件打开方式,在指定了fifilename时使用这个参数,默认值为“a”还可指定为“w”。
    format:      指定handler使用的日志显示格式。
    datefmt:    指定日期时间格式。
    level:        设置rootlogger(后边会讲解具体概念)的日志级别
    stream:     用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为
    sys.stderr。

    文件里输出日志

    3.Handler    流

    logger = logging.getLogger()    #初始化对象方法
    logger.error('nihao')

    #控制信息的输出位置 流 想多个位置就创建多个
    d=logging.FileHandler('文件的路径.log')
    e=logging.FileHandler('oh.log')
    f=logging.StreamHandler()
    #把他们加进去
    logger.addHandler(d)
    logger.addHandler(e)
    logger.addHandler(f)
    Handler对象负责发送相关的信息到指定目的地,有几个常用的Handler方法:
    Handler.setLevel(lel):        指定日志级别,低于lel级别的日志将被忽略
    Handler.setFormatter():  给这个handler选择一个Formatter
    Handler.addFilter(fifilt)、Handler.removeFilter(fifilt):新增或删除一个fifilter对象

    作者:小汤o

  • 相关阅读:
    web端常见兼容性问题整理
    浏览器初始化样式
    html5特效库
    csshack
    进程与线程,并发、并行、异步、多线程
    js复制粘贴事件
    dom range相关
    vue和react在使用上的对比
    ListView往TreView里面拖拽
    ListView添加项目带序列
  • 原文地址:https://www.cnblogs.com/TH3499613196/p/13183790.html
Copyright © 2011-2022 走看看