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二分法实现实例
Nov 21 Python
Python命令行参数解析模块optparse使用实例
Apr 13 Python
Python 常用的安装Module方式汇总
May 06 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
Python socket实现的简单通信功能示例
Aug 21 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
详解python算法之冒泡排序
Mar 05 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Python与C/C++的相互调用案例
Mar 04 Python
Python多线程 Queue 模块常见用法
Jul 04 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
Python常见工厂函数用法示例
2018/03/21 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
美国羊皮公司:Overland
2018/01/15 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
出纳员的岗位职责
2014/02/22 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
慈善晚会策划方案
2014/05/14 职场文书
2014年妇联工作总结
2014/11/21 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
八年级作文之感恩
2019/11/22 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL