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 随机数生成的代码的详细分析
May 15 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
简单了解python的内存管理机制
Jul 08 Python
python 寻找离散序列极值点的方法
Jul 10 Python
python与pycharm有何区别
Jul 01 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
Python实现上下文管理器的方法
Aug 07 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
Python中str.join()简单用法示例
2018/03/20 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
学期自我鉴定范文
2013/10/01 职场文书
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
教师自荐信
2013/12/10 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
五分钟演讲稿
2014/04/30 职场文书
高三复习计划
2015/01/19 职场文书
公司管理制度范本
2015/08/03 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server