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 14 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
django-allauth入门学习和使用详解
Jul 03 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
Python 发送邮件方法总结
Aug 10 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分页函数
2006/10/09 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
Python 绘制可视化折线图
2020/07/22 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
单位人事专员介绍信
2014/01/11 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
明星员工获奖感言
2014/08/14 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
小学安全工作总结2015
2015/05/18 职场文书
2015年征兵工作总结
2015/07/23 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server