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 相关文章推荐
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
python学习 流程控制语句详解
Jun 01 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
python3 反射的四种基本方法解析
Aug 26 Python
python3多线程知识点总结
Sep 26 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
python实现替换word中的关键文字(使用通配符)
Feb 13 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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 strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
Python的装饰器用法学习笔记
2016/06/24 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python Flask-web表单使用详解
2017/11/18 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
python的help函数如何使用
2020/06/11 Python
python 读取、写入txt文件的示例
2020/09/27 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
优秀护士获奖感言
2014/02/20 职场文书
关于学习的演讲稿
2014/05/10 职场文书
物资采购方案
2014/06/12 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android