博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础知识~logger模块
阅读量:6127 次
发布时间:2019-06-21

本文共 1568 字,大约阅读时间需要 5 分钟。

一 配置文件模块

   import logging ->导入模块
    logger = logging.getLogger('mylogger') ->初始化类
二 创建句柄
1 文件句柄
   fh = logging.FileHandler('test.log') ->根据文件创建句柄
   fh.setLevel(logging.DEBUG) ->设置日志级别
   formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')->定义日志格式

                                                    时间                  用户             日志级别              日志具体信息

   fh.setFormatter(formatter)->装填格式
   logger.addHandler(fh)->装填文件句柄
   logger.info('foorbar') -> 最终调用

三 封装成类

  1 可自定义的元素
     1 句柄类型 有(FilHandler,StreamHandler等多种类型)
        1 StreamHandler: 输出到控制台
        2 FileHandler: 输出到文件
        3 BaseRotatingHandler 可以按时间写入到不同的日志中。比如将日志按天写入不同的日期结尾的文件文件。
        4 SocketHandler 用TCP网络连接写LOG
        5 DatagramHandler 用UDP网络连接写LOG
        6 SMTPHandler 把LOG写成EMAIL邮寄出去
  2 调整日志等级 有(debug,info,error)等
      logger.debug("foobar")
      logger.info("foobar")
     logger.warning("foobar")
     logger.error("foobar")
    logger.critical("foobar")
四 样式例子

import logging

class Logger():
   def __init__(self, logname, logger):
    self.logger = logging.getLogger(logger)
    self.logger.setLevel(logging.DEBUG)
    fh = logging.FileHandler(logname)//定义文件句柄
    fh.setLevel(logging.DEBUG)//定义默认的级别
    ch = logging.StreamHandler()//定义流式句柄
    ch.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')//定义输出格式    
   fh.setFormatter(formatter)//句柄加载日志格式
   ch.setFormatter(formatter)
   self.logger.addHandler(fh)//加载句柄
   self.logger.addHandler(ch)
   def get_log(self):
      return self.logger //返回调用

aa=Logger('a.txt','aaa).get_log()

aa.info("we')

  分析 1 类初始化函数包含两类  日志文件名和日志输出中间项(自定义输出)

          2 输出流程 

              定义四类   1 类对象  2 类型句柄 3 日志默认级别 3 时间格式             

             绑定两次   1 类型句柄绑定时间格式  2 对象装载句柄

             一 返回      返回最终的logger对象用作使用

              

转载于:https://www.cnblogs.com/danhuangpai/p/9664310.html

你可能感兴趣的文章
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
第二周例行报告
查看>>
如何使frame能居中显示
查看>>
第k小数
查看>>
构建之法阅读笔记三
查看>>
写给对前途迷茫的朋友:五句话定会改变你的人生
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>