python写日志文件操作类与应用示例


Posted in Python onJuly 01, 2019

本文实例讲述了python写日志文件操作类与应用。分享给大家供大家参考,具体如下:

项目的开发过程中,日志文件是少不了的,通过写日志文件,可以知道程序运行的情况。特别当部署在生产环境中的时候,这个时候一般不能debug , 当然在有些情况时可以 remote debug (远程debug)。那种情况另当别论。还是用通常的写日志的方法,比如在 java 中,经常可以看到 log4j,sf4j,logback等三方组件来写日志。

在python中如何实现呢,其实python 本身也带了日志操作的库。可以直接使用。这里我把在项目中用到的整理了一下,分享在下面,这个实现的方法,主要有两点

1. 写日志的类

2.日志配置文件(handler,logger,以及日志保存的路径等)

写日志的类

'''
Created on 2012-2-17
@author: yihaomen.com
'''
import logging.config
import os
class INetLogger:
  log_instance = None
  @staticmethod
  def InitLogConf():
    currentDir=os.path.dirname(__file__)
    INetLogger.log_instance = logging.config.fileConfig(currentDir+os.path.sep+"logger.ini")
  @staticmethod
  def GetLogger(name = ""):
    if INetLogger.log_instance == None:
      INetLogger.InitLogConf()
    INetLogger.log_instance = logging.getLogger(name)
    return INetLogger.log_instance
if __name__ == "__main__":
  logger = INetLogger.GetLogger()
  logger.debug("debug message")
  logger.info("info message")
  logger.warn("warn message")
  logger.error("error message")
  logger.critical("critical message")
  logHello = INetLogger.GetLogger("root")
  logHello.info("Hello world!")

日志配置文件,与上面的类在同一文件夹下 logger.ini

[loggers]
keys=root,mysql,socket
[handlers]
keys=consoleHandler,rotateFileHandler
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=[%(asctime)s][%(levelname)s] [%(filename)s:%(lineno)d] [thread:%(thread)d]: %(message)s
[logger_root]
qualname=root
level=DEBUG
handlers=consoleHandler,rotateFileHandler
[logger_mysql]
qualname=mysql
level=DEBUG
handlers=rotateFileHandler
[logger_socket]
qualname=socket
level=ERROR
handlers=rotateFileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('c:/logs/InetServer.log', 'a', 2000000, 9)

如果你用了 handler_rotateFileHandler 的话,这样日志就会保存到 才c:/logs/InetServer.log 文件里面,而且当日志超过2000000 d的时候,重新另外生成一个文件,保存9天的记录,你可以配置成30,这样就保存了最近一个月的日志记录。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之编写类之四再论继承
Oct 11 Python
Python中的XML库4Suite Server的介绍
Apr 14 Python
详解python的webrtc库实现语音端点检测
May 31 Python
Python unittest单元测试框架总结
Sep 08 Python
python networkx 根据图的权重画图实现
Jul 10 Python
python 提取文件指定列的方法示例
Aug 07 Python
python实现宿舍管理系统
Nov 22 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
python中68个内置函数的总结与介绍
Feb 24 Python
python初步实现word2vec操作
Jun 09 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
浅谈Python中的正则表达式
Jun 28 Python
python实现自动化上线脚本的示例
Jul 01 #Python
在Python中构建增广矩阵的实现方法
Jul 01 #Python
django框架实现模板中获取request 的各种信息示例
Jul 01 #Python
Python整数对象实现原理详解
Jul 01 #Python
python实现两个dict合并与计算操作示例
Jul 01 #Python
Python字符串对象实现原理详解
Jul 01 #Python
Python转换时间的图文方法
Jul 01 #Python
You might like
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
Python类class参数self原理解析
2020/11/19 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
茶叶生产计划书
2014/01/10 职场文书
大学计划书范文800字
2014/08/14 职场文书
捐款感谢信
2015/01/20 职场文书
工作自我推荐信范文
2015/03/25 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android