周海汉 /文
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的例子:
配置文件放在/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
分享到:
相关推荐
在python开发的时候,有些时候我们需要将日志信息存储下来用以程序的排查。那么就需要定义一个写日志的函数。而且这个函数最好能够满足在控制台打印出来的同时,将信息存储到本地文件中。 该方法有以下功能: 1. ...
Loguru通过其简洁的API和强大的功能,使得Python日志记录变得高效且易于维护。无论是小型项目还是大型项目,它都能提供合适的解决方案。在实际开发中,善用Loguru可以提升代码的可读性和可维护性,同时也方便问题...
python-elasticsearch-logger, 标准 python 日志记录框架的python Elasticsearch处理程序 CMRESHandler.py python Elasticsearch日志处理程序这个库提供了一个与标准日志库兼容的Elasticsearch日志附加组件。...
asynclog提供了python日志记录的异步方式。 将日志记录I / O(尤其是当我们要登录到网络端点时的网络I / O)留给提供的异步线程或异步任务。 要求 Python 3.5+ 安装 pip install asynclog 用法 从字典配置 log_cfg ...
Loki的Python日志记录处理程序。 安装 pip install python-logging-loki 用法 import logging import logging_loki handler = logging_loki . LokiHandler ( url = ...
### Python日志输出——Logging模块浅析与使用 #### 概述 日志记录是软件开发中的重要组成部分,它能够帮助开发者追踪程序运行时的状态、调试错误以及进行性能分析等。在Python中,`logging`模块是进行日志管理的...
我发现默认的Python日志记录模块功能强大,但难以上手并且难以快速设置。 SimpleLogger仅支持基本要素,例如输出重定向,自定义日志记录格式和日志记录级别。 用法: 日志级别和阈值: 通过Logger.set_threshold...
json记录Python日志记录库发出JSON日志,可以通过记录日志基础结构(例如 , ,AWS Cloudwatch,GCP Stackdriver)轻松索引和搜索如果您使用的是Cloud Foundry,可能值得看看我也是原始作者的库 。内容2.12.2 2.3 ...
Loguru是一个旨在以Python带来令人愉悦的日志记录的库。 您是否曾经对配置记录器并使用print()感到懒惰?...另外,该库旨在通过添加一堆有用的功能来减轻Python日志记录的痛苦,这些功能可以解决标准方面的问题
`Pygogo`是一个强大的Python日志记录库,它提供了比Python内置的`logging`模块更高级的功能,尤其适合在命令行界面(CLI)应用程序中使用。`Pygogo`的设计理念是提供结构化日志记录,使得日志数据更易于解析、过滤和...
Logme-用于人类的Python日志记录 Logme是一个Python软件包,可以使日志记录变得简单而强大。 如果您发现登录Python并非如此简单,请下载此软件包并尝试一下! :)V1.3.0更新logme.ini文件现在支持自定义datefmt和...
**Python日志记录框架——loguru** 在Python编程中,日志记录是一项至关重要的任务,它可以帮助开发者跟踪程序运行状态,排查错误,并提供系统维护的宝贵信息。传统的Python日志模块`logging`虽然功能强大,但配置...
在Python编程中,日志记录是一项至关重要的任务,它帮助开发者跟踪程序运行的状态,调试错误,以及在生产环境中监控应用程序。`console-logging`是指在命令行界面(CLI)中显示的日志信息,通常用于简单易用的开发...
Python日志记录是开发者在编写程序时用于跟踪和记录程序运行状态的重要工具。它能够帮助我们了解程序的运行过程,定位错误,以及在生产环境中监控应用程序。`logging`模块是Python标准库的一部分,提供了丰富的功能...
该库提供了Python日志记录格式化程序来输出JSON,2个格式化程序特定于Logstash消息格式版本0或1。 安装 使用点子: pip install json-logging-py 来自来源: python setup.py install 用法 该库的名称是...
【rlogger-py:带有rlogd的rlogger的python日志记录处理程序】 在IT行业中,日志记录是至关重要的,它可以帮助开发者追踪应用程序的行为、诊断错误和优化性能。rlogger-py是一个专为rlogger设计的Python库,旨在提供...
`logging`模块提供了一套完整的日志记录系统,包括不同级别的日志(如DEBUG, INFO, WARNING, ERROR, CRITICAL)、日志处理器(Handler)以及格式化器(Formatter)。默认情况下,只有WARNING级别及以上级别的日志会...
Eliot 是一个 Python 日志系统,不只是为简单应用程序所设计,更主要是为一些复杂的应用和分布式系统设计。支持简单结构消息,同时也可记录一系列的动作链。特性:结构化,类型化的日志消息可记录动作而不只是简单...
python-telegram-handler:一个通过Telegram Bot Api发送日志的python日志记录处理程序
Python 的信息性回溯日志记录 如果您已经在使用标准日志记录模块,请启用信息性堆栈跟踪: import rich_traceback.enable import logging 就是这样,您可以像往常一样使用日志记录,如果发生异常,它将通过配置的根...