47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
import logging
|
|
from pathlib import Path
|
|
from datetime import datetime
|
|
|
|
|
|
def logger_init(
|
|
log_filename="monitor", log_level=logging.DEBUG, log_dir="./logs/", only_file=False
|
|
):
|
|
"""
|
|
初始化日志系统
|
|
Args:
|
|
log_filename: 日志文件名.
|
|
log_level: 日志等级.
|
|
log_dir: 日志目录.
|
|
only_file: 是否只保存到日志文件中.
|
|
"""
|
|
|
|
# 指定日志文件路径
|
|
log_dir = Path(log_dir)
|
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
log_filepath = log_dir / (log_filename + "_" + str(datetime.now())[:10] + ".txt")
|
|
|
|
# 指定日志格式
|
|
formatter = "[%(asctime)s] - %(levelname)s: %(message)s"
|
|
|
|
# 只保存到日志文件中
|
|
if only_file:
|
|
logging.basicConfig(
|
|
filename=log_filepath,
|
|
level=log_level,
|
|
format=formatter,
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
# 保存到日志文件并输出到终端
|
|
else:
|
|
logging.basicConfig(
|
|
level=log_level,
|
|
format=formatter,
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
handlers=[
|
|
logging.FileHandler(log_filepath),
|
|
logging.StreamHandler(sys.stdout),
|
|
],
|
|
)
|