python实现log日志的示例代码


Posted in Python onApril 28, 2018

源代码:

# coding=utf-8
import logging
import os
import time
LEVELS={'debug':logging.DEBUG,\
  'info':logging.INFO,\
  'warning':logging.WARNING,\
  'error':logging.ERROR,\
  'critical':logging.CRITICAL,}
  
logger=logging.getLogger()
level='default'
def createFile(filename):
 path=filename[0:filename.rfind('/')]
 if not os.path.isdir(path):
  os.makedirs(path)
 if not os.path.isfile(filename):
#创建并打开一个新文件
  fd = open(filename,mode='w',encoding='utf-8')
  fd.close()
class MyLog:
 log_filename='E:/quality/it/pyrequest-master/log/itest.log'
 err_filename='E:/quality/it/pyrequest-master/log/err.log'
 dateformat='%Y-%m-%d %H:%M:%S'
 logger.setLevel(LEVELS.get(level,logging.NOTSET))
 createFile(log_filename)
 createFile(err_filename)
#注意文件内容写入时编码格式指定
 handler=logging.FileHandler(log_filename,encoding='utf-8')
 errhandler=logging.FileHandler(err_filename,encoding='utf-8')
 @staticmethod 
 #静态方法
 def debug(log_message):
  setHandler('debug')
  logger.debug("[DEBUG "+getCurrentTime()+"]"+log_message)
  removerhandler('debug')
 @staticmethod
 def info(log_message):
  setHandler('info')
  logger.info("[INFO "+getCurrentTime()+"]"+log_message)
  removerhandler('info')
 
 @staticmethod
 def warning(log_message):
  setHandler('warning')
  logger.warning("[WARNING "+getCurrentTime()+"]"+log_message)
  removerhandler('warning')
 @staticmethod
 def error(log_message):
  setHandler('error')
  logger.error("[ERROR "+getCurrentTime()+"]"+log_message)
  removerhandler('error')
 @staticmethod
 def critical(log_message):
  setHandler('critical')
  logger.critical("[CRITICAL "+getCurrentTime()+"]"+log_message)
  removerhandler('critical')
# logger可以看做是一个记录日志的人,对于记录的每个日志,他需要有一套规则,比如记录的格式(formatter),
# 等级(level)等等,这个规则就是handler。使用logger.addHandler(handler)添加多个规则,
# 就可以让一个logger记录多个日志。
def setHandler(level):
 if level=='error':
  logger.addHandler(MyLog.errhandler)
 #handler=logging.FileHandler(log_filename)
 #把logger添加上handler
 logger.addHandler(MyLog.handler)
def removerhandler(level):
 if level=='error':
  logger.removeHandler(MyLog.errhandler)
 logger.removeHandler(MyLog.handler)
def getCurrentTime():
 return time.strftime(MyLog.dateformat,time.localtime(time.time()))
if __name__=="__main__":
 MyLog.debug("This is debug message")
 MyLog.info("This is info message")
 MyLog.warning("This is warning message")
 MyLog.error("This is error message")
 MyLog.critical("This is critical message")

以上这篇python实现log日志的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现字符串格式化的方法小结
Feb 20 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
Python3最长回文子串算法示例
Mar 04 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python生成一个迭代器的实操方法
Jun 18 Python
python for循环remove同一个list过程解析
Aug 14 Python
python图形用户接口实例详解
Dec 16 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
python识别验证码的思路及解决方案
Sep 13 Python
python调试工具Birdseye的使用教程
May 25 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 #Python
Python之读取TXT文件的方法小结
Apr 27 #Python
如何利用python查找电脑文件
Apr 27 #Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 #Python
python Spyder界面无法打开的解决方法
Apr 27 #Python
解决Spyder中图片显示太小的问题
Apr 27 #Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 #Python
You might like
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
json简单介绍
2008/06/10 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
Python提取网页中超链接的方法
2016/09/18 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
教师党员岗位承诺书
2014/05/29 职场文书
机械操作工岗位职责
2014/08/08 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
办公室个人总结
2015/02/28 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
python数字图像处理之图像的批量处理
2022/06/28 Python