以前看过,但一直认为很复杂。象 NewEdit 都是自已写的日志处理。其实 logging 做得很好,也不是很复杂,只要看明白例子。在新发布的crawl 2.1.1中使用了logging,下面把它的使用代码写出来,很简单:
1 def initlog():
2 import logging
3
4 logger = logging.getLogger()
5 hdlr = logging.FileHandler(logfile)
6 formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
7 hdlr.setFormatter(formatter)
8 logger.addHandler(hdlr)
9 logger.setLevel(logging.NOTSET)
10
11 return logger
这个函数用来返回一个日志对象。
第4行生成一个日志对象,可以带一个名字,可以缺省。
第5行生成一个Handler。logging支持许多Handler,象FileHandler, SocketHandler, SMTPHandler等,我由于要写文件就使用了FileHandler。logfile是一个全局变量,它就是一个文件名,如:'crawl.log'。
第6行生成一个格式器,用于规范日志的输出格式。如果没有这行代码,那么缺省的格式就是:"%(message)s"。也就是写日志时,信息是什么日志中就是什么,没有日期,没有信息级别等信息。logging支持许多种替换值,详细请看Formatter的文档说明。这里有三项:时间,信息级别,日志信息。
第7行将格式器设置到处理器上。
第8行将处理器加到日志对象上。
第9行设置日志信息输出的级别。logging提供多种级别的日志信息,如:NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL等。每个级别都对应一个数值。如果不执行此句,缺省为30(WARNING)。可以执行:logging.getLevelName(logger.getEffectiveLevel())来查看缺省的日志级别。日志对象对于不同的级别信息提供不同的函数进行输出,如:info(), error(), debug()等。当写入日志时,小于指定级别的信息将被忽略。因此为了输出想要的日志级别一定要设置好此参数。这里我设为NOTSET(值为0),也就是想输出所有信息。
有了日志对象,输出就非常简单了:
logger.error(message)
logger.info(message)
分享到:
相关推荐
### Python的logging模块详解 #### 一、简介与应用场景 在进行Python开发时,日志模块是必不可少的一部分,尤其对于大型或复杂的项目来说更是如此。Python内置的`logging`模块提供了一种简单且灵活的方式来记录...
文章详细讲述了如何使用Python自建logging模块,包括其基本功能的体验、日志级别的机制、基础类的组成等知识点。 首先,介绍logging模块的基本使用方法。通过简单的代码示例,展示了如何设置日志器logger,并输出...
在多进程环境中,正确地使用`logging`模块尤为重要,因为它可以帮助开发者追踪和诊断分布式系统的问题。本文将深入探讨如何在多进程环境下使用`logging`。 首先,`logging`模块提供了多种日志级别,包括DEBUG、INFO...
Python的logging模块是用于生成...总之,Python的logging模块提供了一套强大且灵活的日志管理系统,无论是简单的调试信息还是复杂的生产环境监控,都能满足需求。正确地使用日志,能显著提升开发效率和问题解决速度。
使用Logging模块可以很便捷地将日志信息输出到控制台、文件、甚至是网络上的服务器。 Logging模块的基本使用方法包括获取logger对象、添加Handler处理器、设置Formatter格式化器以及设置日志级别等。 首先,我们...
总结,Python的logging模块通过handlers提供了丰富的日志管理功能,能够适应各种应用场景,从简单的控制台输出到复杂的日志存储和归档。理解并熟练使用这些handlers对于编写可维护和可调试的Python程序至关重要。
在"LoggerDemo"中,我们可以看到一个简单的日志模块实现,包括了日志级别、格式化输出、文件写入等功能。通过分析这个示例,我们可以学习如何在实际项目中构建自己的日志系统。 总之,日志模块的实现是软件工程中的...
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍。下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调用,而每个文件设置了对应的logging方式...
总之,Python的logging模块提供了一套全面的日志管理方案,无论是在简单的小型项目还是复杂的大型系统中,都能有效地帮助开发者跟踪和调试程序行为。通过深入理解和灵活运用这个模块,可以极大地提升开发效率和代码...
Python的logging模块是标准库中用于日志记录的模块,它提供了一套完整的日志处理系统,能够方便地记录各种级别的...无论是在小型脚本还是大型应用中,合理使用logging模块都能显著提升代码的可维护性和问题排查效率。
### Python日志输出详解——深入理解logging模块 在Python编程中,日志系统扮演着至关重要的角色,尤其是在处理复杂项目时。它不仅帮助开发者追踪软件运行过程中的各种事件,还能在遇到问题时提供宝贵的线索。...
### 使用Python的Logging模块在Stdout输出的两种方法 #### 前言 在Python开发过程中,使用`logging`模块来记录程序运行时的日志是非常常见的做法。这不仅可以帮助我们更好地跟踪程序的状态,还能在出现问题时提供...
Python的logging模块是用于日志记录的标准库,它提供了丰富的功能来满足不同级别的日志需求,从简单的调试信息到复杂的日志记录策略。在Python程序中使用logging模块可以帮助开发者跟踪程序运行状态,诊断错误,以及...
### Python日志logging模块使用方法分析 #### 一、引言 在软件开发过程中,日志记录是一项重要的功能。良好的日志系统可以帮助开发者追踪程序执行流程、定位问题、监控性能等。Python内置的日志模块`logging`提供了...
### Python日志输出——Logging模块浅析与使用 #### 概述 日志记录是软件开发中的重要组成部分,它能够帮助开发者追踪程序运行时的状态、调试错误以及进行性能分析等。在Python中,`logging`模块是进行日志管理的...