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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python 列表list使用介绍
Nov 30 Python
Python字典操作简明总结
Apr 13 Python
Python实现简单的HttpServer服务器示例
Sep 25 Python
用matplotlib画等高线图详解
Dec 14 Python
Python程序运行原理图文解析
Feb 10 Python
python如何去除字符串中不想要的字符
Jul 05 Python
Flask框架WTForm表单用法示例
Jul 20 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
Python爬取知乎图片代码实现解析
Sep 17 Python
python之生成多层json结构的实现
Feb 27 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
smarty的保留变量问题
2008/10/23 PHP
php解析url的三个示例
2014/01/20 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
python 装饰器的基本使用
2021/01/13 Python
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
元旦红领巾广播稿
2014/02/19 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
党风廉正建设责任书
2015/01/29 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
考勤制度通知
2015/04/25 职场文书
运动会广播稿300字
2015/08/19 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
聊一聊python常用的编程模块
2021/05/14 Python