mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 23:23:55 +08:00
Merge pull request #1481 from xinnan-tech/py_AEC_test
funasr添加内存检测判断;修改日志模块,日志轮转(单个文件10MB限制)
This commit is contained in:
@@ -3,8 +3,9 @@ import sys
|
||||
from loguru import logger
|
||||
from config.config_loader import load_config
|
||||
from config.settings import check_config_file
|
||||
from datetime import datetime
|
||||
|
||||
SERVER_VERSION = "0.5.2"
|
||||
SERVER_VERSION = "0.5.4"
|
||||
_logger_initialized = False
|
||||
|
||||
|
||||
@@ -59,7 +60,7 @@ def setup_logging():
|
||||
)
|
||||
log_format_file = log_config.get(
|
||||
"log_format_file",
|
||||
"{time:YYYY-MM-DD HH:mm:ss} - {version_{extra[selected_module]}} - {name} - {level} - {extra[tag]} - {message}",
|
||||
"{time:YYYY-MM-DD HH:mm:ss} - {version}_{extra[selected_module]} - {name} - {level} - {extra[tag]} - {message}",
|
||||
)
|
||||
selected_module_str = logger._core.extra["selected_module"]
|
||||
|
||||
@@ -84,12 +85,23 @@ def setup_logging():
|
||||
# 输出到控制台
|
||||
logger.add(sys.stdout, format=log_format, level=log_level, filter=formatter)
|
||||
|
||||
# 输出到文件
|
||||
# 输出到文件 - 统一目录,按大小轮转
|
||||
# 日志文件完整路径
|
||||
log_file_path = os.path.join(log_dir, log_file)
|
||||
|
||||
# 添加日志处理器
|
||||
logger.add(
|
||||
os.path.join(log_dir, log_file),
|
||||
log_file_path,
|
||||
format=log_format_file,
|
||||
level=log_level,
|
||||
filter=formatter,
|
||||
rotation="10 MB", # 每个文件最大10MB
|
||||
retention="30 days", # 保留30天
|
||||
compression=None,
|
||||
encoding="utf-8",
|
||||
enqueue=True, # 异步安全
|
||||
backtrace=True,
|
||||
diagnose=True,
|
||||
)
|
||||
_logger_initialized = True # 标记为已初始化
|
||||
|
||||
@@ -116,7 +128,7 @@ def update_module_string(selected_module_str):
|
||||
)
|
||||
log_format_file = log_config.get(
|
||||
"log_format_file",
|
||||
"{time:YYYY-MM-DD HH:mm:ss} - {version_{extra[selected_module]}} - {name} - {level} - {extra[tag]} - {message}",
|
||||
"{time:YYYY-MM-DD HH:mm:ss} - {version}_{extra[selected_module]} - {name} - {level} - {extra[tag]} - {message}",
|
||||
)
|
||||
|
||||
log_format = log_format.replace("{version}", SERVER_VERSION)
|
||||
@@ -133,14 +145,26 @@ def update_module_string(selected_module_str):
|
||||
level=log_config.get("log_level", "INFO"),
|
||||
filter=formatter,
|
||||
)
|
||||
|
||||
# 更新文件日志配置 - 统一目录,按大小轮转
|
||||
log_dir = log_config.get("log_dir", "tmp")
|
||||
log_file = log_config.get("log_file", "server.log")
|
||||
|
||||
# 日志文件完整路径
|
||||
log_file_path = os.path.join(log_dir, log_file)
|
||||
|
||||
logger.add(
|
||||
os.path.join(
|
||||
log_config.get("log_dir", "tmp"),
|
||||
log_config.get("log_file", "server.log"),
|
||||
),
|
||||
log_file_path,
|
||||
format=log_format_file,
|
||||
level=log_config.get("log_level", "INFO"),
|
||||
filter=formatter,
|
||||
rotation="10 MB", # 每个文件最大10MB
|
||||
retention="30 days", # 保留30天
|
||||
compression=None,
|
||||
encoding="utf-8",
|
||||
enqueue=True, # 异步安全
|
||||
backtrace=True,
|
||||
diagnose=True,
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
|
||||
@@ -2,6 +2,7 @@ import time
|
||||
import os
|
||||
import sys
|
||||
import io
|
||||
import psutil
|
||||
from config.logger import setup_logging
|
||||
from typing import Optional, Tuple, List
|
||||
from core.providers.asr.base import ASRProviderBase
|
||||
@@ -37,6 +38,13 @@ class CaptureOutput:
|
||||
class ASRProvider(ASRProviderBase):
|
||||
def __init__(self, config: dict, delete_audio_file: bool):
|
||||
super().__init__()
|
||||
|
||||
# 内存检测,要求大于2G
|
||||
min_mem_bytes = 2 * 1024 * 1024 * 1024
|
||||
total_mem = psutil.virtual_memory().total
|
||||
if total_mem < min_mem_bytes:
|
||||
logger.bind(tag=TAG).error(f"可用内存不足2G,当前仅有 {total_mem / (1024*1024):.2f} MB,可能无法启动FunASR")
|
||||
|
||||
self.interface_type = InterfaceType.LOCAL
|
||||
self.model_dir = config.get("model_dir")
|
||||
self.output_dir = config.get("output_dir") # 修正配置键名
|
||||
|
||||
Reference in New Issue
Block a user