zoukankan      html  css  js  c++  java
  • pythonn全栈学习笔记--logging模块学习(四)

    一、logging相关配置

     1 import logging
     2 """
     3     asctime:运行时间
     4     name:主模块名称
     5     levelname:日志级别  INFO、DEBUG
     6     message:日志内容
     7 """
     8 # 日志配置
     9 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s-%(name)s - 
    10                                         %(levelname)s-%(message)s')
    11 
    12 # 声明了一个 Logger 对象,它就是日志输出的主类
    13 # __name__:执行主模块的名称
    14 logger= logging.getLogger(__name__)
    15 # 日志信息内容输出
    16 logger.info('信息')
    17 # 日志信息调试输出
    18 logger.debug("调试")
    19 # 日志信息警告输出
    20 logger.warning("警告")
    21 logger.info("完成")

     注: 

    1 # 另一种设置日志级别的方式,对实例化对象进行级别配置
    2 logger.setLevel(level=logging.DEBUG)
    • filename:即日志输出的文件名,如果指定了这个信息之后,实际上会启用 FileHandler(日志存入文件中),而不再是 StreamHandler(控制台输出),这样日志信息便会输出到文件中了。
    • filemode:这个是指定日志文件的写入方式,有两种形式,w:清除后写入,一种是 a:追加写入。
    • format:指定日志信息的输出格式
    • datefmt:指定时间的输出格式。
    • style:如果 format 参数指定了,这个参数就可以指定格式化时的占位符风格,如 %、{、$ 等。
    • level:指定日志输出的类别,程序会输出大于等于此级别的信息
    • stream:在没有指定 filename 的时候会默认使用 StreamHandler,这时 stream 可以指定初始化的文件流。
    • handlers:可以指定日志处理时所使用的 Handlers,必须是可迭代的。

    扩展:

    • level对应等级

     

     二、Handler用法:

     1 import logging
     2 from logging.handlers import HTTPHandler
     3 import sys
     4 
     5 
     6 # 实例化logging一个对象
     7 logger = logging.getLogger(__name__)
     8 # 配置日志级别为DEBUG
     9 logger.setLevel(level=logging.DEBUG)
    10 # 指定信息输出格式
    11 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    12 
    13 # streamHandler
    14 # 指定日志文件并创建一个handler对象
    15 stream_handler = logging.StreamHandler(sys.stdout)
    16 stream_handler.setLevel(level=logging.DEBUG)
    17 # 将输出格式和handler绑定
    18 stream_handler.setFormatter(formatter)
    19 # 将handler对象和logger(日志对象)绑定
    20 logger.addHandler(stream_handler)
    21 
    22 # FileHandler
    23 file_handler = logging.FileHandler('out.log')
    24 file_handler.setLevel(logging.INFO)
    25 file_handler.setFormatter(formatter)
    26 logger.addHandler(file_handler)
    27 
    28 # HTTPHandler
    29 http_handler = HTTPHandler(host='localhost:8001', url='log', method='POST')
    30 logger.addHandler(http_handler)
    31 
    32 # 日志输出信息
    33 logger.info('Info')
    34 logger.debug('Debug')
    35 logger.warning('Warning')
    36 logger.info('Finish')

    三、Formatter

  • 相关阅读:
    arm-linux-gcc 安装和测试
    JIT动态编译器的原理与实现之Interpreter3
    sql server常有的问题-实时错误'91' 对象变量或with块变量未设置
    WM_PARENTNOTIFY的作用(不完全)
    WM_CLOSE、WM_DESTROY、WM_QUIT学习总结(点击关闭按钮会触发WM_CLOSE消息,DestroyWindow API会触发WM_DESTROY和WM_NCDESTROY消息,MSDN上写的很清楚)
    Windows XP 每次开机都自动检测硬盘 解决办法(可以用HDDRegenerate修复坏道)
    这141家创业公司为什么失败
    QTableView 固定列宽度(鼠标拖动后,仍可固定)
    银行快捷支付的思考
    QQ空间如何显示相片
  • 原文地址:https://www.cnblogs.com/myanswer/p/9285296.html
Copyright © 2011-2022 走看看