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在windows下实现备份程序实例
Jul 04 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
python opencv3实现人脸识别(windows)
May 25 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
python科学计算之narray对象用法
Nov 25 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
python 轮询执行某函数的2种方式
May 03 Python
pandas apply多线程实现代码
Aug 17 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php绘制一个扇形的方法
2015/01/24 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
js 对象是否存在判断
2009/07/15 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Python同时处理多个异常的方法
2020/07/28 Python
利用python爬取有道词典的方法
2020/12/08 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
英语系本科生求职信
2014/07/15 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
golang正则之命名分组方式
2021/04/25 Golang