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切换hosts文件代码示例
Dec 31 Python
Python上下文管理器和with块详解
Sep 09 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
Django如何使用jwt获取用户信息
Apr 21 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
python入门之算法学习
Apr 22 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
PHP 远程关机实现代码
2009/11/10 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
一些Python中的二维数组的操作方法
2015/05/02 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
python设置中文界面实例方法
2020/10/27 Python
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
中学生关于梦想的演讲稿
2014/08/22 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL