logging模块是专门做日志系统的.分为函数版和自定义函数.

(一)logging模块初级版

缺点,不能指定字符集,不能把屏幕输出和文件日志同时记录。只能选择其一。

文件记录日志

  1. import logging
  2.  
  3. logging.basicConfig(
  4. level = 30,
  5. filename = "logger.log",
  6. filemode = "a",
  7. format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s',
  8.  
  9. )
  10.  
  11. logging.warning("这是一个警告")
  12. logging.error("这是一个错误")
  13. logging.critical("这是一个严重错误")

  

屏幕输出日志

  1. import logging
  2.  
  3. logging.basicConfig(
  4. level = 30,
  5. #filename = "logger.log",
  6. filemode = "a",
  7. format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s',
  8.  
  9. )
  10.  
  11. logging.warning("这是一个警告")
  12. logging.error("这是一个错误")
  13. logging.critical("这是一个严重错误")

  

(二)logging模块中自定义日志系统

  1. import logging
  1. logger = logging.getLogger() # 自定义一个模块系统
  2. Formatter = logging.Formatter('%(asctime)s-%(name)s-%(lineno)d-%(message)s') # 定义日志输出格式
  3. ft = logging.FileHandler("logger.log", "a", encoding="utf-8") # 定义文件流
  4. st = logging.StreamHandler() # 定义屏幕流
  5. ft.setFormatter(Formatter) # 将格式加载到文件流中
  6. st.setFormatter(Formatter) # 将格式加载到屏幕流中
  7. logger.addHandler(ft) # 将文件流加载到自定义的loger日志系统中
  8. logger.addHandler(st) # 将屏幕流加载到自定义的loger日志系统中
  1.  
  1. logger.debug("这是一个debug")
  2. logger.info("这是一个info")
  3. logger.warning("这是一个warning")
  4. logger.error("这是一个error")
  5. logger.critical("这是一个critical")
  6.  
  7. logger.removeHandler(ft) # 将Handler移除,避免下次调用,生成同样的Handler导致重复日志,Eg:第一次输出日志一行,第二次输出同样的两行日志(因为又生成了一个Handler)
  8. # 第三次输出同样的三行日志

常用方法:

  1. import logging
  2.  
  3. ft = logging.FileHandler("logger.log", "a", encoding="utf-8") # 定义文件流
  4. Formatter = logging.Formatter('%(asctime)s Username:%(name)s message-%(message)s',datefmt='%Y:%m:%d') # 定义日志输出格式
  5. ft.setFormatter(Formatter) # 将格式加载到文件流中
  6.  
  7. logger = logging.Logger(name='a',level=logging.DEBUG) # 自定义一个模块系统
  8. logger.addHandler(ft) # 将文件流加载到自定义的loger日志系统中

  

 

  

常见模块(二) logging模块的更多相关文章

  1. 常用模块:os模块,logging模块等

    一    os模块 那么作为一个常用模块,os模块是与操作系统交互的一个模块. 那么os模块中我们常用的一般有以下几种: os.listdir('dirname') 以列表的形式列出指定目录下的所有文 ...

  2. os模块,sys模块,json和pickle模块,logging模块

    目录 OS模块 sys模块 json和pickle模块 序列化和反序列化 json模块 pickle logging模块 OS模块 能与操作系统交互,控制文件 / 文件夹 # 创建文件夹 import ...

  3. 模块讲解---os模块,sys模块,json和pickle模块,logging模块

    目录 模块的用法 os模块 常用的功能 sys模块 常用的功能 json和pickle模块 4. logging模块 模块的用法 通过 import 或者from......import...... ...

  4. 十二 logging模块

    一 日志级别 CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 ...

  5. 模块二 hashlib模块、configparser模块、logging模块

    算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...

  6. Python学习日记(二十八) hashlib模块、configparse模块、logging模块

    hashlib模块 主要提供字符加密算法功能,如md5.sha1.sha224.sha512.sha384等,这里的加密算法称为摘要算法.什么是摘要算法?它又称为哈希算法.散列算法,它通过一个函数把任 ...

  7. Python模块之hashlib模块、logging模块

    一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...

  8. 《Python》hashlib模块、configparser模块、logging模块

    一.hashlib模块 Python的hashlib模块中提供了常见的摘要算法,如md5,sha1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的字符串(通 ...

  9. subprocess模块和logging模块

    主要内容: 一.subprocess模块 二.logging模块 1️⃣  subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...

随机推荐

  1. 复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第六大题解答

    六.(本题10分)  设 $M_n(K)$ 为数域 $K$ 上的 $n$ 阶方阵全体构成的线性空间, $A,B\in M_n(K)$, $M_n(K)$ 上的线性变换 $\varphi$ 定义为 $\ ...

  2. 若快打码平台python开发文档修改版

    一.打码的作用 在进行爬虫过程中,部分网站的登录验证码是比较简单的,例如四个英文数字随机组合而成的验证码,有的是全数字随机组成的验证码,有的是全中文随机组成的验证码.为了爬虫进行自动化,需要解决自动登 ...

  3. LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)

    本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能.LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDe ...

  4. [easyUI] 树形菜单 tree

    0.效果图 1. 一个id为mytree的无序列表 <h2>easy UI Tree</h2> <ul id="mytree"></ul& ...

  5. mst总结

     1.jsonp跨域 Jsop的原理:利用script不存在跨域的问题,动态创建script标签,把需要请求的数据源地址赋值给其src属性,并且指定一个回调函数,从而接受到我们想要的数据 后台设置下 ...

  6. python avro 数据格式使用demo

    {"name": "UEProcedures", "type": "record", "fields" ...

  7. 聚合函数count()

    2018-08-12

  8. python-类的约束,MD5,异常处理,日志

    # # 项目经理 # class Base: # # 对子类进行了约束. 必须重写该方法 # # 以后上班了. 拿到公司代码之后. 发现了notImplementedError 继承他 直接重写他 # ...

  9. day34-python操作redis三

    Hash类型操作 Hash类型操作 Redis在内存中存储hash类型是以name对应一个字典形式存储的 hset(name,key,value) #name对应的hash中设置一个键值对(不存在,则 ...

  10. SQL-49 针对库中的所有表生成select count(*)对应的SQL语句

    题目描述 针对库中的所有表生成select count(*)对应的SQL语句CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_dat ...