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