python对日志进行处理的实例代码


Posted in Python onOctober 06, 2018

平时做数据处理基本离不了日志记录功能。每次都配置一堆挺烦人,索性封装个模块,这里记录一下,与大家共享。
说明

本日志模块目前只有一个方法getLogger,其他配置项通过参数传递,包括日志文件名,等级,日志文件划分方式,日志清除配置,日志格式等。

logger.py

import loggin

gfrom logging import handlers

# 日志级别字典

__level_dict = {  

'critical': logging.CRITICAL,  

'fatal': logging.CRITICAL,  

'error': logging.ERROR,  

 'warning': logging.WARNING,  

 'warn': logging.WARNING,  

 'info': logging.INFO,  

 'debug': logging.DEBUG

}

def getLogger(filename, level='info', when='D', backupCount=3,

       fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):

  """

  获取日志处理对象

 

  :param filename: 日志文件名称

  :param level: 日志等级:debug, info, warn/warning, error, critical

  :param when: 日志文件分割的时间单位,单位有以下几种:<br>

        - S 秒<br>

        - M 分<br>

        - H 小时<br>

        - D 天<br>

        - W 每星期<br>

        - midnight 每天凌晨<br>

  :param backupCount: 备份文件的个数,如果超过这个数量,就会自动删除

  :param fmt: 日志信息格式

  :return:

  """

  level = __level_dict.get(level.lower(), None)

  logger = logging.getLogger(filename)  # 设置日志格式

  format_str = logging.Formatter(fmt)  # 设置日志级别

  logger.setLevel(level)  # 控制台输出

  console_handler = logging.StreamHandler()  # 控制台输出的格式

  console_handler.setFormatter(format_str)

  logger.addHandler(console_handler)  # 文件输出

  file_handler = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backupCount,

                           encoding='utf-8')  # 文件输出的格式

  file_handler.setFormatter(format_str) 

  logger.addHandler(file_handler)  return loggerif __name__ == '__main__':

  log = getLogger('test.log')

  log.debug('debug')

  log.info('info')

  log.warning('警告')

  log.error('报错')

  log.critical('严重')

  getLogger('error.log', level='error').error('error')

运行结果

2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:59] - INFO: info
2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:60] - WARNING: 警告
2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:61] - ERROR: 报错
2018-09-06 17:07:40,910 - D:/jetbrains/workspace-pycharm/test/logger.py[line:62] - CRITICAL: 严重
2018-09-06 17:07:40,915 - D:/jetbrains/workspace-pycharm/test/logger.py[line:63] - ERROR: erro

以上就是本次相关知识点的全部内容和代码,感谢大家对三水点靠木的支持。

Python 相关文章推荐
python单线程实现多个定时器示例
Mar 30 Python
Python进行数据提取的方法总结
Aug 22 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
Python模块WSGI使用详解
Feb 02 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
python requests爬取高德地图数据的实例
Nov 10 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
用Python实现Newton插值法
Apr 17 Python
浅析Python函数式编程
Oct 06 #Python
Python实现iOS自动化打包详解步骤
Oct 03 #Python
Python中GIL的使用详解
Oct 03 #Python
Python线程同步的实现代码
Oct 03 #Python
详解通过API管理或定制开发ECS实例
Sep 30 #Python
Python 使用类写装饰器的小技巧
Sep 30 #Python
浅谈django三种缓存模式的使用及注意点
Sep 30 #Python
You might like
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
javawscript 三级菜单的实现原理
2009/07/01 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Python二维码生成识别实例详解
2019/07/16 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
python基于event实现线程间通信控制
2020/01/13 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
yy结婚证婚词
2014/01/10 职场文书
个人现实表现材料
2014/02/04 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书