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中条件选择和循环语句使用方法介绍
Mar 13 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
利用python实现周期财务统计可视化
Aug 25 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
Django后台管理系统的图文使用教学
Jan 20 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
利用python爬取有道词典的方法
Dec 08 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支持页面回退的两种方法[转]
2007/02/14 PHP
php 301转向实现代码
2008/09/18 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
实例解析php的数据类型
2018/10/24 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
文本加密解密
2006/06/23 Javascript
Maps Javascript
2007/01/22 Javascript
javascript工具库代码
2012/03/29 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
python解析模块(ConfigParser)使用方法
2013/12/10 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python字典遍历操作实例小结
2019/03/05 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python的help函数如何使用
2020/06/11 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
竞聘演讲稿
2014/04/24 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏