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 合并文件的具体实例
Aug 08 Python
python发送arp欺骗攻击代码分析
Jan 16 Python
python访问类中docstring注释的实现方法
May 04 Python
python中循环语句while用法实例
May 16 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
Python 3 判断2个字典相同
Aug 06 Python
python关于调用函数外的变量实例
Dec 26 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
python 实现体质指数BMI计算
May 26 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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/05/26 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
curl和libcurl的区别简介
2015/07/01 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
升职演讲稿范文
2014/05/23 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
医德医魂心得体会
2014/09/11 职场文书
统计工作个人总结
2015/03/03 职场文书
司机个人年终总结
2015/03/03 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python