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使用range函数计算一组数和的方法
May 07 Python
python3.x上post发送json数据
Mar 04 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
python中数据库like模糊查询方式
Mar 02 Python
Python连接Impala实现步骤解析
Aug 04 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
python中类与对象之间的关系详解
Dec 16 Python
总结Python常用的魔法方法
May 25 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
用python画城市轮播地图
May 28 Python
PyQt5结合QtDesigner实现文本框读写操作
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
SAE实时日志接口SDK用法示例
2016/10/09 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
使用console进行性能测试
2015/04/27 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
Python检测QQ在线状态的方法
2015/05/09 Python
python3中int(整型)的使用教程
2017/03/23 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
python实现顺时针打印矩阵
2019/03/02 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
法国体育用品商店:GO Sport
2019/10/23 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
花店创业计划书范文
2014/02/07 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
六一儿童节开幕词
2015/01/29 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
代码复现python目标检测yolo3详解预测
2022/05/06 Python