默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,

这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),

默认的日志格式为日志级别:Logger名称:用户输出消息。

函数式简单配置

import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='test.log',
filemode='w')
logging.debug('debug message') #低级别 #拍错信息
logging.info('info message') #正常信息
logging.warning('warning message')#警告信息
logging.error('error message') #错误信息
logging.critical('critical message')#高级别的 #严重错误信息
try:
int(input('num>>>'))
except ValueError:
logging.error('输入的值类型不对!')
basicconfig:简单,但能解决的事情相对较少
不能解决中文乱码问题
不能同时在文件和屏幕上输出

此时解决了中文乱码问题,也可同时在文件和屏幕上输出---程序的充分解耦,让程序变的高可定制

import logging
#创建一个logger对象
logger = logging.getLogger()
fh = logging.FileHandler('log.log',encoding='utf-8')
#创建一个屏幕打印对象
sh = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - [line:%(lineno)d] - %(message)s')
#文件操作符 和 格式关联
fh.setFormatter(formatter)
sh.setFormatter(formatter2)
#logger对象 和 文件操作符关联
logger.addHandler(fh)
logger.addHandler(sh)
logging.debug('debug message')
logging.info('info message')
logging.warning('警告信息')
logging.error('error message')
logging.critical('critical message')

总结:

有5种级别的日志记录模式:debug、info、warning、error、critical
2种配置方式:basicconfig、log对象

 

 

最新文章

  1. android存储方式的应用场景
  2. 重构alert,confirm
  3. Java Web之JavaBean
  4. c++实现des算法
  5. Sphinx中文分词详细安装配置及API调用实战
  6. C# Web中Session的使用
  7. Eclipse插件收藏列表
  8. Embedded software develop step
  9. WP8.1开发者预览版本号已知 Bug
  10. [乐意黎原创] cuteftp 9 显示中文乱码
  11. Java数组的操作方法
  12. ubuntu16.04 install qtcreator
  13. 动态从数据库获取数据,省市县三级联动,有校验,导出Excel模板
  14. C#.NET XML报文签名与验签
  15. Linux之Ubuntu无线网络配置
  16. oracle 相关操作
  17. c#dev tabcontrol 切换页面时注意的问题
  18. PostgreSQL(一)教程 -----高级特性
  19. 【数据结构】 顺序表查找(折半查找&&差值查找)
  20. LeetCode:矩形区域【223】

热门文章

  1. python抓取头条文章
  2. 从别人的代码中学习golang系列--02
  3. 普通平衡树学习笔记之Splay算法
  4. Scala 面向对象(十二):嵌套类
  5. java 基本语法(十一) 数组(四)数组的常见算法
  6. 李航统计学习方法(第二版)(六):k 近邻算法实现(kd树(kd tree)方法)
  7. Lua-源码-字符串的resize函数-luaS_resize
  8. 关于JS深拷贝和浅拷贝
  9. DirectX11 With Windows SDK--34 位移贴图
  10. CentOS7 源码编译安装Nginx