文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 日志记录

2023-01-31 08:14

关注

周海汉 /文

http://blog.csdn.net/ablo_zhou

2010.3.20

 

一、我写的log4py介绍

 

在写<汉字大全 >时,自己实现了简单的log系统:

 

输出

INFO.stdout.test.
2010-03-20T09:19:47.091774.[DEBUG].gloabal.debug information 调试.
2010-03-20T09:19:47.092294.[ERROR].gloabal.errorrrrrrrrrrrrrrr.
2010-03-20T09:19:47.092568.[DEBUG].gloabal.hello.

 

使用时,只需

import log4py

log = log4py.log4py('module name')

 

就可以用log.debug('debug')等几个级别打印log了。还可以定义是标准输出还是输出到文件,输出什么级别的。适用于小型的log系统。

 

该log4py的好处是使用起来简单,具有基本的级别定义,完全支持中文,log调试的输入除了字符串还支持列表,字典,数字等,可以打印exception信息。打印的格式为"时间到毫秒,模块名,log级别,log内容“。

 

但与系统的log比起来,缺乏强大的定制能力。

 

二、系统的logging模块

著名的log4j,log4cpp,以及python自带的logging其配置都相当复杂,使用灵活,可以通过配置文件自定义输出哪些模块,输出级别,输出格式,输出到文件和标准输出。并且兼顾多线程,性能等。

 

系统自带的logging模块,缺省就可以简单使用:

>>> import logging
>>> logging.debug('debug')
>>> logging.warn('debug')
WARNING:root:debug
>>> logging.debug('你好,调试')
>>> logging.warn('你好,调试')
WARNING:root:你好,调试

 

可见,在控制台,debug缺省是不打印的。

可以在编程时直接控制log的方式,也可以通过配置文件来进行。当然,配置文件更灵活。

 

2.1 logging的几个组件

Logger,Manager, Handler,Filter,Formatter,Configuration,Level

Logger 是应用中log的实例,Handler是输出的方式,如:

  • StreamHandler - logging to a stream, defaulting to sys.stderr.
  • FileHandler - logging to disk files.
  • RotatingFileHandler - logging to disk files with support for rollover, rotating files.
  • SocketHandler - logging to a streaming socket.
  • DatagramHandler - logging to a UDP socket.
  • SMTPHandler - logging to an email address.
  • SysLogHandler - logging to Unix syslog. Contributed by Nicolas Untz, based on Sam Rushing's syslog module .
  • MemoryHandler - buffering records in memory until a specific trigger occurs (or until the buffer gets full).
  • NTEventLogHandler - writes events to the NT event log. For this to work, you need to have Mark Hammond's Win32 extensions installed. (Though of course you can still log to NT from other platforms - just use SocketHandler to redirect to an NT machine).
  • HTTPHandler - sends events to a Web server using either GET or POST semantics.

Filter是设置的模块,哪些需要记录,都可以配置。

Formatter是输出的格式,可以格式化时间,模块,级别。

Level是输出的级别,有如下级别:

DEBUG
INFO
WARNING
ERROR
CRITICAL

log4j等原来的版本最高级是FATAL,python的logging最高级别是CTITICAL,因为FATAL是系统崩溃的错误。

 

下面是一个使用配置文件写log的例子:

周海汉 #date:2010.3.20 #file testlog.py import logging import logging.config logconf = '/home/zhouhh/logconf.ini' logging.config.fileConfig(fname=logconf) log1 = logging.getLogger('modlog1') log1.debug('log1调试信息') log1.warn('log1警告信息') log1.error('log1 error错误信息') log2 = logging.getLogger('modlog1.modlog2') log2.debug('log2调试信息') log2.warn('log2警告信息') log2.error('log2 错误信息')

 

配置文件放在/home/zhouhh/logconf.ini

 

执行后,命令行看到输出:

文件python.log看到信息:

 

下面是一个比较完全的配置文件,从http://www.red-dove.com/python_logging.html拿过来的,功写logconf文件时参考:

 

3.参考:

http://www.red-dove.com/python_logging.html

http://www.python.org/dev/peps/pep-0282/

http://docs.python.org/library/logging.html#configuration

http://blog.donews.com/limodou/archive/2005/02/16/278699.aspx

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯