zoukankan      html  css  js  c++  java
  • Python3-logging模块-日志记录

    Python3中的logging模块提供了较为灵活的事件日志系统

      日志级别

        DEBUG < INFO < WARING(Python默认) < ERROR < FATAL(CRITICAL)

      logging模块常用的类主要有以下几个

        logging.Logger

          主要提供应用程序代码直接使用的接口,一般不会直接实例化,而是通过logging.getLogger(name)得到

        logging.Handler

          日志处理对象的基类,不应实例化,被实例化的应该是其子类,如logging.StreamHandler,它负责发送日志记录到正确的目标

        logging.Formatter

          它决定了以怎样的格式来进行打印日志记录,常用的日志格式如下:

          %(name)s

            Logger对象的名字

          %(levelname)s

            日志级别的英文表示

          %(filename)s

            调用日志输出函数的模块名

          %(lineno)s

            调用日志输出函数的语句所在的代码行

          %(asctime)s

            字符串形式的当前时间

          %(message)s

            用户输出的消息

    示例代码

    import logging
    
    # 1.初始化日志默认配置
    logging.basicConfig(filename='./my.log',                                                 # 日志输出文件
                        level=logging.DEBUG,                                                 # 日志写入级别
                        datefmt='%Y-%m-%d %H:%M:%S',                                         # 时间格式
                        format='%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s')    # 日志写入格式
    
    # 2.打印不同级别的日志记录
    logging.debug("debug级别的日志")
    logging.info("info级别的日志")
    logging.warning("warning级别的日志")
    logging.error("error级别的日志")
    logging.critical("fatal级别的日志")
    1.基础配置仅打印日志到文件

    import logging
    
    # Formatter对象 用于决定日志打印的格式
    fmt = logging.Formatter("%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s")
    fmt.datefmt = "%Y-%m-%d %H:%M:%S"      # 可以自定义时间的格式
    
    # Handler对象 将(logger创建的)日志记录发送到合适的目的输出
    ch = logging.StreamHandler()            # 标准输出流处理对象
    ch.setFormatter(fmt)
    ch.setLevel(logging.WARNING)
    
    fh = logging.FileHandler("./jet.log")   # 文件处理对象
    fh.setFormatter(fmt)
    fh.setLevel(logging.FATAL)
    
    # Logger对象 对外暴露的接口
    logger = logging.getLogger("Jet")
    logger.addHandler(ch)
    logger.addHandler(fh)
    logger.setLevel(logging.INFO)         # 日志级别总控制,以它为最低级别
    
    
    # 日志输出
    logger.debug("debug级别的日志")
    logger.info("info级别的日志")
    logger.warning("warning级别的日志")
    logger.error("error级别的日志")
    logger.critical("fatal级别的日志")
    2.自定义配置双向输出日志到控制台和文件

    参考资料

      http://python.usyiyi.cn/translate/python_352/library/logging.html

      

  • 相关阅读:
    mysql监控优化(一)连接数和缓存
    mysql数据库的备份与恢复
    python学习笔记(十八)网络编程之requests模块
    python学习笔记(十七)网络编程之urllib模块
    python学习笔记(十六)内置函数zip、map、filter的使用
    python学习笔记(十五)异常处理
    python 学习笔记(十四)有依赖关系的接口开发
    如何使用django中的cookie和session?
    django Form表单的使用
    django 中模板语言的各种用法
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/6640372.html
Copyright © 2011-2022 走看看