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 datetime时间格式化去掉前导0
Jul 31 Python
浅谈Python数据类型之间的转换
Jun 08 Python
详解Python pygame安装过程笔记
Jun 05 Python
python去除字符串中的换行符
Oct 11 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
Python:slice与indices的用法
Nov 25 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 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
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
PHP时间类完整代码实例
2021/02/26 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python 日期操作类代码
2018/05/05 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
python 制作简单的音乐播放器
2020/11/25 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
仓库管理专业个人的自我评价
2013/12/30 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
数学检讨书1000字
2014/02/24 职场文书
高一学生评语大全
2014/04/25 职场文书
一份文言文检讨书
2014/09/13 职场文书
单位实习鉴定评语
2015/01/04 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书