Python日志库logging的使用

只写入文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import logging

log_directory = "logs"
if not os.path.exists(log_directory):
os.makedirs(log_directory)
# 生成日志文件名(使用当前时间戳)
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
log_filename = os.path.join(log_directory, f"scan_log_{current_time}.log")

# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
filename=log_filename,
filemode='w'
)

使用

1
logging.info("开始扫描过程")

写入控制台和文件

utils/zlog.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import logging
import os
from datetime import datetime

# 配置 logging
logger = logging.getLogger('my_app_logger')
logger.setLevel(logging.DEBUG) # 设置日志级别
# 创建一个 formatter,格式化日志信息
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 创建一个控制台 handler,输出日志到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG) # 设置控制台 handler 的日志级别
console_handler.setFormatter(formatter)
# 将 handler 添加到 logger
logger.addHandler(console_handler)

# 创建一个文件 handler,写入日志到指定文件
log_directory = "logs"
if not os.path.exists(log_directory):
os.makedirs(log_directory)
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
log_filename = os.path.join(log_directory, f"log_{current_time}.log")
file_handler = logging.FileHandler(log_filename, encoding='utf-8')
file_handler.setLevel(logging.DEBUG) # 设置文件 handler 的日志级别
file_handler.setFormatter(formatter)
# 将 handler 添加到 logger
logger.addHandler(file_handler)

使用

1
2
3
4
5
from utils.zlog import logger

logger.info("info")
logger.warning("warning")
logger.error("error")