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的Django框架中的缓存控制
Jul 24 Python
简单谈谈Python流程控制语句
Dec 04 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
python输出pdf文档的实例
Feb 13 Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 Python
浅谈Python3中print函数的换行
Aug 05 Python
Python实现EM算法实例代码
Oct 04 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/03/02 无线电
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
php类常量用法实例分析
2015/07/09 PHP
表格 隔行换色升级版
2009/11/07 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python实现自动登录后台管理系统
2018/10/18 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
学生爱国演讲稿
2014/01/14 职场文书
服务生自我鉴定
2014/01/22 职场文书
建议书标准格式
2014/03/12 职场文书
高中课程设置方案
2014/05/28 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
结婚司仪主持词
2015/06/29 职场文书
办公室卫生管理制度
2015/08/04 职场文书
大学生党课心得体会
2016/01/07 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS