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进程管理工具supervisor使用实例
Sep 17 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
python在每个字符后添加空格的实例
May 07 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
用Python实现读写锁的示例代码
Nov 05 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
python 实现的车牌识别项目
Jan 25 Python
windows安装python超详细图文教程
May 21 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 xml实例 留言本
2009/03/20 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
JavaScript日历实现代码
2010/09/12 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
js中replace的用法总结
2013/12/27 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
应届毕业生求职信范文分享
2013/12/26 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
七夕活动策划方案
2014/08/16 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
房产公证书
2015/01/23 职场文书
2015年信访工作总结
2015/04/07 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python