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 json encode datetime类型
Dec 28 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
pip安装python库的方法总结
Aug 02 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
python numpy数组复制使用实例解析
Jan 10 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 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
PHP4在Windows2000下的安装
2006/10/09 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
Python多线程学习资料
2012/12/19 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python ssh 执行shell命令的示例
2020/09/29 Python
python Xpath语法的使用
2020/11/26 Python
java关于string最常出现的面试题整理
2021/01/18 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
高中运动会广播稿
2014/01/21 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
装修施工安全责任书
2014/07/24 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript