【进阶篇】Python中的日志记录与logging模块使用
发布时间: 2024-06-24 13:23:18 阅读量: 73 订阅数: 106
大华无插件播放项目111
![【进阶篇】Python中的日志记录与logging模块使用](https://www.jiankongyi.com/uploads/allimg/files/images/1645784027.png)
# 2.1 logging模块的安装和配置
### 安装logging模块
logging模块是Python标准库的一部分,因此无需额外安装。
```
# 检查是否已安装
import logging
print(logging.__version__)
```
### 配置logging模块
logging模块通过配置对象进行配置,可以设置日志记录级别、格式化器和处理程序。
```python
import logging
# 创建一个配置对象
config = logging.basicConfig()
# 设置日志记录级别
config.level = logging.DEBUG
# 设置日志格式化器
config.format = "%(asctime)s - %(levelname)s - %(message)s"
# 设置日志处理程序
config.handlers = [logging.StreamHandler()]
```
# 2. logging模块基础
### 2.1 logging模块的安装和配置
#### 安装logging模块
logging模块是Python标准库的一部分,因此无需单独安装。要使用它,只需在你的Python脚本中导入它:
```python
import logging
```
#### 配置logging模块
logging模块使用一个名为`logging.conf`的配置文件进行配置。该文件指定了日志记录级别、日志记录格式和日志记录处理程序。
要创建`logging.conf`文件,请使用以下步骤:
1. 打开一个文本编辑器。
2. 将以下内容粘贴到文件中:
```
[loggers]
keys=root
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=INFO
handlers=consoleHandler
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stderr,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
```
3. 将文件保存为`logging.conf`。
4. 将文件放在你的Python脚本所在的目录中。
### 2.2 日志记录级别和格式化
#### 日志记录级别
logging模块定义了以下日志记录级别:
| 级别 | 描述 |
|---|---|
| DEBUG | 调试信息 |
| INFO | 一般信息 |
| WARNING | 警告信息 |
| ERROR | 错误信息 |
| CRITICAL | 严重错误信息 |
要设置日志记录级别,请使用`logging.basicConfig()`函数:
```python
logging.basicConfig(level=logging.INFO)
```
#### 日志记录格式化
logging模块使用`logging.Formatter`类来格式化日志记录消息。`logging.Formatter`类接受一个格式字符串作为参数,该字符串指定了日志记录消息的格式。
以下是一些常用的格式字符串:
| 格式字符串 | 描述 |
|---|---|
| `%(asctime)s` | 日志记录时间 |
| `%(name)s` | 日志记录器名称 |
| `%(levelname)s` | 日志记录级别 |
| `%(message)s` | 日志记录消息 |
要设置日志记录格式,请使用`logging.basicConfig()`函数:
```python
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
```
### 2.3 日志记录器和处理程序
#### 日志记录器
日志记录器是负责生成日志记录消息的组件。要创建日志记录器,请使用`logging.getLogger()`函数:
```python
logger = logging.getLogger('my_logger')
```
#### 日志记录处理程序
日志记录处理程序是负责处理日志记录消息的组件。要创建日志记录处理程序,请使用`logging.StreamHandler()`或`logging.FileHandler()`函数:
```python
handler = logging.StreamHandler(sys.stdout)
```
要将日志记录处理程序添加到日志记录器,请使用`logger.addHandler()`方法:
```python
logger.addHandler(handler)
```
要记录日志记录消息,请使用`logger.log()`方法:
```python
logger.info('This is an info message')
```
# 3.1 日志记录过滤和筛选
### 过滤器
过滤
0
0