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

(一)logging模块初级版

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

文件记录日志

import logging

logging.basicConfig(
level = 30,
filename = "logger.log",
filemode = "a",
format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s', ) logging.warning("这是一个警告")
logging.error("这是一个错误")
logging.critical("这是一个严重错误")

  

屏幕输出日志

import logging

logging.basicConfig(
level = 30,
#filename = "logger.log",
filemode = "a",
format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s', ) logging.warning("这是一个警告")
logging.error("这是一个错误")
logging.critical("这是一个严重错误")

  

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

import logging
logger = logging.getLogger()  # 自定义一个模块系统
Formatter = logging.Formatter('%(asctime)s-%(name)s-%(lineno)d-%(message)s') # 定义日志输出格式
ft = logging.FileHandler("logger.log", "a", encoding="utf-8") # 定义文件流
st = logging.StreamHandler() # 定义屏幕流
ft.setFormatter(Formatter) # 将格式加载到文件流中
st.setFormatter(Formatter) # 将格式加载到屏幕流中
logger.addHandler(ft) # 将文件流加载到自定义的loger日志系统中
logger.addHandler(st) # 将屏幕流加载到自定义的loger日志系统中

logger.debug("这是一个debug")
logger.info("这是一个info")
logger.warning("这是一个warning")
logger.error("这是一个error")
logger.critical("这是一个critical") logger.removeHandler(ft) # 将Handler移除,避免下次调用,生成同样的Handler导致重复日志,Eg:第一次输出日志一行,第二次输出同样的两行日志(因为又生成了一个Handler)
# 第三次输出同样的三行日志

常用方法:

import logging

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

  

 

  

最新文章

  1. QT网络编程
  2. springMVC下jsp引用外部js,css等静态资源的解决方法
  3. http-2.4.18 安装
  4. iOS开发项目之三 [ 自定义tabBarCtrl]
  5. Jquery调用webService的四种方法
  6. MSM8974 fastboot烧写软件
  7. Azure 自动化:使用PowerShell Credential连接到Azure
  8. matlab数据的导入和导出,以matlab工作区workspace为source和destination
  9. LeetCode(3) - Longest Substring Without Repeating Characters
  10. PHP 魔术方法(所有的魔术方法)
  11. Unbound classpath container: 'JRE System Library [jdk17060]' in project ***
  12. 初学者必知的HTML规范
  13. 25个超有用的 AngularJS Web 开发工具
  14. Sublime codeIntel 配置支持php自动提示
  15. 当freemarker中EL表达式的值为空时出现异常的解决方法
  16. 【转】Python高级知识点总结
  17. H5新属性FileReader实现选择图片后立即显示在页面上
  18. 关于 Shell 的相关概念和配置方法,全在这儿了!
  19. Mac使用Shell(终端)SSH连接远程服务器
  20. onkeydown事件

热门文章

  1. SIP 编解码器
  2. centos6.5下安装tomcat
  3. vue进行文件下载
  4. LeetCode in action
  5. dockerfile 介绍
  6. 线性回归(linear regression)
  7. 最新案例铁血军事手机客户端(IOS & Android)
  8. C/C++.【转】解析URL的转义字符百分比(%)字符串
  9. 页面系统,浏览器检测- 网页基础模块(JavaScript)
  10. 设计图与html 对比