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中的array数组模块相关使用
Jul 05 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
基于pip install django失败时的解决方法
Jun 12 Python
python读写LMDB文件的方法
Jul 02 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python日志无延迟实时写入的示例
Jul 11 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
python实现的Iou与Giou代码
Jan 18 Python
python中os.remove()用法及注意事项
Jan 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
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python打包成so文件过程解析
2019/09/28 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
会计专业毕业生推荐信
2013/11/05 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
初三语文教学计划
2015/01/22 职场文书
停水通知
2015/04/16 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
情感电台广播稿
2015/08/18 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
vue 实现上传组件
2021/05/31 Vue.js