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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
python操作gmail实例
Jan 14 Python
用Python编写简单的微博爬虫
Mar 04 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
Python实现线程状态监测简单示例
Mar 28 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python函数返回不定数量的值方法
Jan 22 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
浅谈django 重载str 方法
May 19 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 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/02/21 PHP
PHP实现变色验证码实例
2014/01/06 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
React优化子组件render的使用
2019/05/12 Javascript
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python写日志封装类实例
2015/06/28 Python
Python编写登陆接口的方法
2017/07/10 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
上海天奕面试题笔试题
2015/04/19 面试题
2014年办公室文员工作总结
2014/11/12 职场文书
邀请函的格式
2015/01/30 职场文书
小学中队活动总结
2015/05/11 职场文书