zoukankan      html  css  js  c++  java
  • Python--logging日志

    日志等级:

      由高到底:critical、error、warning、info、debug、notset

      默认情况下,日志级别在WARNING及以上的日志输出到标准输出。

    -----------------------------------------------------------------------------------------------------------------

    记录器(Logger):提供日志相关功能的调用接口

    处理器(Handler):将日志发送到合适的目的地

    格式化器(Formatter):指明输出的日志记录的格式

    过滤器(Filter):决定输出日志记录的粒度

    -----------------------------------------------------------------------------------------------------------------

    Logger:

    创建实例:logger = logging.getLogger('example')

      默认的日志级别是WARNING,默认的处理器是StreamHandler(即日志信息输出到标准输出),默认的格式化器Formatter(logging level:instance name:logging message)。

    Handler:

      通过Logger对象的addHandler()方法为Logger对象添加0个或多个Handler的子类对象,将日志信息输出到设置的地方。

    Formatter

      用于设置日志输出的格式,可直接初始化对象,即formatter=logging.Formatter(fmt=None, datefmt=None)。默认的日志格式fmt%(asctime)s - %(levelname)s - %(messages),默认的时间格式datefmt%Y-%m-%d %H:%M:%S

    Filter

      可用于Logger对象或Handler对象,用于提供比日志等级更加复杂的日志过滤方式。Filter在日志功能配置中是非必须的,对日志消息过滤需求比较复杂时配置使用。

    -----------------------------------------------------------------------------------------------------------------

    3种方法配置日志:
      a. 在Python代码中显示创建Logger,Handler,Formatter和Filter对象,并调用各对象的配置函数进行日志配置
      b. 将配置信息写到配置文件,通过读取配置文件进行日志配置
      c. 将配置信息写到Dict,通过读取配置字典进行日志配置

    -----------------------------------------------------------------------------------------------------------------

     Simple_Example:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2018/01/24 9:57
    # @Author : qf
    # @Site :
    # @File : mylogger.py
    # @Software: PyCharm Community Edition
    import logging
    from logging.handlers import TimedRotatingFileHandler
    import os
    from utils import timeutilQF


    # path = os.getcwd()
    pathdir = os.path.dirname(os.getcwd())
    datefile = timeutilQF.get_date()

    # LOG_FILE = pathdir + '\log\' + datefile + '.log'
    # LOG_FILE = 'F:\myProject\QFAutoFrame\log\default.log'

    qf_formatter = logging.Formatter(
    '%(asctime)s %(levelname)s %(threadName)s[%(thread)d] %(filename)s[line:%(lineno)d] : %(message)s')

    qf_sh = logging.StreamHandler()
    # qf_sh.setLevel(logging.WARNING)
    qf_sh.setLevel(logging.INFO)
    qf_sh.setFormatter(qf_formatter)

    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    logger.addHandler(qf_sh)

    LOG_FILE = pathdir + '\log\' + datefile + '.log'
    qf_tfh = TimedRotatingFileHandler(LOG_FILE, when="midnight", encoding='utf-8')
    qf_tfh.setLevel(logging.INFO)
    qf_tfh.setFormatter(qf_formatter)
    logger.addHandler(qf_tfh)
  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/8341509.html
Copyright © 2011-2022 走看看