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 相关文章推荐
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
如何在python中使用selenium的示例
Dec 26 Python
python简单实现操作Mysql数据库
Jan 29 Python
Django中Model的使用方法教程
Mar 07 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
Python 日期与时间转换的方法
Aug 01 Python
python 生成器需注意的小问题
Sep 29 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 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/07/08 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
python 切片和range()用法说明
2013/03/24 Python
Python中IPYTHON入门实例
2015/05/11 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python 如何创建一个线程池
2020/07/28 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
开学典礼主持词
2014/03/19 职场文书
党员一句话承诺大全
2014/03/28 职场文书
小学六年级学生评语
2014/04/22 职场文书
齐云山导游词
2015/02/06 职场文书
大学生实习证明
2015/06/16 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
MySQL时区造成时差问题
2022/04/13 MySQL