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编写基于DHT协议的BT资源爬虫
Mar 19 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
python difflib模块示例讲解
Sep 13 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
Python简单定义与使用二叉树示例
May 11 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
May 24 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
Python3实现飞机大战游戏
Apr 24 Python
Python实现EM算法实例代码
Oct 04 Python
Python进度条的使用
May 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截取指定图片大小的方法
2014/12/10 PHP
PHP7 windows支持
2021/03/09 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
js面向对象的写法
2016/02/19 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
python入门教程 python入门神图一张
2018/03/05 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python dlib人脸识别代码实例
2019/04/04 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
金融管理专业毕业生求职信
2014/03/12 职场文书
收款委托书范本
2014/09/11 职场文书
家长会后的感想
2015/08/11 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS