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数据结构之二叉树的遍历实例
Apr 29 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
Python编程argparse入门浅析
Feb 07 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python提取照片坐标信息的实例代码
Aug 14 Python
python的setattr函数实例用法
Dec 16 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 Python
python制作抽奖程序代码详解
Jan 15 Python
python实现计算图形面积
Feb 22 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHPCMS的使用小结
2010/09/20 PHP
php 数组使用详解 推荐
2011/06/02 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python学习思维导图(必看篇)
2017/06/26 Python
Flask之flask-session的具体使用
2018/07/26 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
药剂专业毕业生求职信
2014/06/24 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
Golang实现可重入锁的示例代码
2022/05/25 Golang
Echarts如何重新渲染实例详解
2022/05/30 Javascript
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android