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操作json数据的一个简单例子
Apr 17 Python
Python实现的几个常用排序算法实例
Jun 16 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python微信公众号之关键词自动回复
Jun 15 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
Python如何存储数据到json文件
Mar 09 Python
对python中arange()和linspace()的区别说明
May 03 Python
Keras设置以及获取权重的实现
Jun 19 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
一个oracle+PHP的查询的例子
2006/10/09 PHP
一个简单的域名注册情况查询程序
2006/10/09 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
vue实现添加与删除图书功能
2018/10/07 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
python读取xlsx的方法
2018/12/25 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python实现多层感知器
2019/01/18 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
历史教育专业个人求职信
2013/12/13 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
放假通知格式
2015/04/14 职场文书
机器人总动员观后感
2015/06/09 职场文书
公司档案管理制度
2015/08/05 职场文书
5个实用的JavaScript新特性
2022/06/16 Javascript