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实现linux服务器批量修改密码并生成execl
Apr 22 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
Python模块文件结构代码详解
Feb 03 Python
python写入已存在的excel数据实例
May 03 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
Python生成rsa密钥对操作示例
Apr 26 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
Pytest中skip和skipif的具体使用方法
Jun 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
深入了解php4(1)--回到未来
2006/10/09 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
python实现简单ftp客户端的方法
2015/06/28 Python
python数组过滤实现方法
2015/07/27 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
RealTek面试题
2016/06/28 面试题
出纳员的岗位职责
2014/02/22 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
起诉书格式范文
2015/05/20 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
keepalived + nginx 实现高可用方案
2022/12/24 Servers