最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下。python的标准库里的日志系统从Python2.3开始支持。只要import logging这个模块即可使用。如果你想开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件,只要这样使用:复制代码 代码如下:import logging# 创建一个loggerlogger = logging.getLogger(‘mylogger’)logger.setLevel(logging.DEBUG)# 创建一个handler,用于写入日志文件fh = logging.FileHandler(‘test.log’)fh Python的标准日志模块`logging`是开发者在编写程序时用于记录和管理日志信息的关键工具。自Python 2.3版本起,这个模块就已经被纳入了标准库,为程序员提供了强大的日志处理功能。通过使用`logging`模块,你可以轻松地实现日志信息的输出,不仅可以在控制台上显示,还可以将其写入文件,甚至通过网络传输。 使用`logging`模块时,你需要导入它: ```python import logging ``` 创建一个logger实例是使用`logging.getLogger()`方法。你可以指定logger的名字,如未指定,则默认为root logger。logger实例是基于名字的单例,即同名的logger实例总是相同的。 ```python logger = logging.getLogger('mylogger') ``` 设置logger的级别至关重要,这决定了哪些日志信息会被记录。级别包括`NOTSET`(最低)、`DEBUG`、`INFO`、`WARNING`、`ERROR`和`CRITICAL`(最高)。例如,若设置为`INFO`级别,那么低于`INFO`的日志将不会被输出,而等于或高于`INFO`级别的日志将会被记录。 ```python logger.setLevel(logging.INFO) ``` 接着,你可以创建handler来决定日志如何输出。`FileHandler`用于将日志写入文件,`StreamHandler`则用于输出到控制台。 ```python fh = logging.FileHandler('test.log') # 写入文件的日志handler fh.setLevel(logging.INFO) ch = logging.StreamHandler() # 输出到控制台的日志handler ch.setLevel(logging.INFO) ``` 为了使handler输出格式统一,可以定义一个`Formatter`对象。 ```python formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) ``` 将handler添加到logger中,以便它们可以处理logger记录的日志。 ```python logger.addHandler(fh) logger.addHandler(ch) ``` 现在,你可以使用logger的各个方法来记录不同级别的日志信息,如`logger.info()`, `logger.warning()`, `logger.error()`等。 ```python logger.info('This is an info message.') logger.warning('A warning occurred.') ``` `logging.basicConfig()`函数是为root logger提供基础配置的快捷方式,它可以设置输出格式和日志级别。如果root logger没有handler,它会添加一个`StreamHandler`。如果已经存在handler,它不会做任何改变。 ```python logging.basicConfig(level=logging.DEBUG, format='%(levelname)s:%(message)s') ``` `logging`模块还提供了其他类型的handler,如`SocketHandler`用于通过TCP发送日志,`DatagramHandler`通过UDP发送日志,`SMTPHandler`则可将日志信息通过电子邮件发送。这些handler使得日志管理更加灵活,可以根据项目需求选择合适的方式记录和分发日志信息。 Python的`logging`模块是一个强大且易用的日志工具,它允许开发者方便地控制日志级别、输出目的地以及格式,从而确保在开发过程中能够准确地跟踪和分析程序状态。通过熟练掌握`logging`模块的使用,你可以更有效地调试和维护你的Python程序。
- 粉丝: 8
- 资源: 920
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Proteus仿真自动门控制系统
- Proteus仿真自动门控制系统
- 基于微信小程序的扫码一键连接WiFi设计源码
- 基于Go语言的用户中心设计源码分享
- 全自动屏蔽罩检测包装机pro4全套技术资料100%好用.zip
- 基于TypeScript和Vue的附近114同城商家电话小程序uniapp设计源码
- 基于Typescript的Elasticsearch可视化工具ES查询客户端设计源码
- 基于Python语言的GLINP科研项目设计源码
- 基于Vue3+Vite+Vant-UI的招聘APP双端设计源码
- 基于SpringBoot和Mybatis的简易网页聊天室设计源码
- 全自动UV平板打印机sw16可编辑全套技术资料100%好用.zip
- 基于Vue.js的旅行推荐系统客户端前端设计源码
- 基于Go语言和Shell、C语言的rubik QoS管理代理设计源码
- 基于Java开发的烟草一体化管控系统后端设计源码
- 基于PrimeVue的Bee-Primevue-Admin Vue设计源码,跨语言支持 TypeScript & CSS
- 基于微信小程序的276款母婴商城设计源码模板