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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
python 爬取B站原视频的实例代码
Sep 09 Python
详解pycharm自动import所需的库的操作方法
Nov 30 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一些有意思的小区别
2006/12/06 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
Python使用folium excel绘制point
2019/01/03 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
如何删除一个表里面的重复行
2013/07/13 面试题
测绘工程专业求职信
2014/07/15 职场文书
离婚财产分配协议书
2014/10/21 职场文书
暑假安全保证书
2015/02/28 职场文书
领导干部失职检讨书
2015/05/05 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
放假通知怎么写
2015/08/18 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Redis RDB技术底层原理详解
2021/09/04 Redis
CPU不支持Windows11系统怎么办
2021/11/21 数码科技