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 getopt 参数处理小示例
Jun 09 Python
Python处理XML格式数据的方法详解
Mar 21 Python
Django forms组件的使用教程
Oct 08 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
python批量修改xml属性的实现方式
Mar 05 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
如何清空python的变量
Jul 05 Python
python 远程执行命令的详细代码
Feb 15 Python
讲解Python实例练习逆序输出字符串
May 06 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
python中import reload __import__的区别详解
2017/10/16 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
django ORM之values和annotate使用详解
2020/05/19 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
UNIX文件系统分类
2014/11/11 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
自我推荐书
2013/12/04 职场文书
大学生自我鉴定书
2014/03/24 职场文书
个人贷款收入证明
2014/10/26 职场文书
部门主管竞聘书
2015/09/15 职场文书