Compare commits
1 Commits
90205e9a8b
...
3b939b8ce9
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3b939b8ce9 |
@ -13,8 +13,10 @@ from eventbus import EventBus
|
|||||||
from human_handler import AudioHandler
|
from human_handler import AudioHandler
|
||||||
from utils import load_model, mirror_index, get_device, SyncQueue
|
from utils import load_model, mirror_index, get_device, SyncQueue
|
||||||
from .huaman_status import HumanStatus
|
from .huaman_status import HumanStatus
|
||||||
|
from utils.log import logger
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
# logger = logging.getLogger(__name__)
|
||||||
current_file_path = os.path.dirname(os.path.abspath(__file__))
|
current_file_path = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
|
||||||
|
71
utils/log.py
71
utils/log.py
@ -1,13 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import redis
|
|
||||||
from loguru import logger as logurulogger
|
from loguru import logger as logurulogger
|
||||||
import redis.exceptions
|
|
||||||
from app.config import config
|
|
||||||
import json
|
import json
|
||||||
from redis.retry import Retry
|
|
||||||
from redis.backoff import ExponentialBackoff
|
|
||||||
|
|
||||||
LOG_FORMAT = (
|
LOG_FORMAT = (
|
||||||
"<level>{level: <8}</level> "
|
"<level>{level: <8}</level> "
|
||||||
@ -20,17 +15,6 @@ LOG_FORMAT = (
|
|||||||
)
|
)
|
||||||
LOG_NAME = ["uvicorn", "uvicorn.access", "uvicorn.error", "flask"]
|
LOG_NAME = ["uvicorn", "uvicorn.access", "uvicorn.error", "flask"]
|
||||||
|
|
||||||
# 配置 Redis 连接池
|
|
||||||
redis_pool = redis.ConnectionPool(
|
|
||||||
host=config.LOG_REDIS_HOST, # Redis 服务器地址
|
|
||||||
port=config.LOG_REDIS_PORT, # Redis 服务器端口
|
|
||||||
db=config.LOG_REDIS_DB, # 数据库编号
|
|
||||||
password=config.LOG_REDIS_AUTH, # 密码
|
|
||||||
max_connections=config.max_connections, # 最大连接数
|
|
||||||
socket_connect_timeout=config.socket_connect_timeout, # 连接超时时间
|
|
||||||
socket_timeout=config.socket_timeout, # 等待超时时间
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class InterceptHandler(logging.Handler):
|
class InterceptHandler(logging.Handler):
|
||||||
def emit(self, record):
|
def emit(self, record):
|
||||||
@ -53,38 +37,32 @@ class Logging:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.log_path = "logs"
|
self.log_path = "logs"
|
||||||
self._connect_redis()
|
os.makedirs(self.log_path, exist_ok=True)
|
||||||
if config.IS_LOCAL:
|
|
||||||
os.makedirs(self.log_path, exist_ok=True)
|
|
||||||
self._initlogger()
|
self._initlogger()
|
||||||
self._reset_log_handler()
|
self._reset_log_handler()
|
||||||
|
|
||||||
def _connect_redis(self):
|
|
||||||
retry = Retry(ExponentialBackoff(), 3) # 重试3次,指数退避
|
|
||||||
self.redis_client = redis.Redis(connection_pool=redis_pool,retry=retry) # 使用连接池
|
|
||||||
|
|
||||||
def _initlogger(self):
|
def _initlogger(self):
|
||||||
"""初始化loguru配置"""
|
"""初始化loguru配置"""
|
||||||
logurulogger.remove()
|
logurulogger.remove()
|
||||||
if config.IS_LOCAL:
|
logurulogger.add(
|
||||||
logurulogger.add(
|
os.path.join(self.log_path, "error.log.{time:YYYY-MM-DD}"),
|
||||||
os.path.join(self.log_path, "error.log.{time:YYYY-MM-DD}"),
|
format=LOG_FORMAT,
|
||||||
format=LOG_FORMAT,
|
level=logging.ERROR,
|
||||||
level=logging.ERROR,
|
rotation="00:00",
|
||||||
rotation="00:00",
|
retention="1 week",
|
||||||
retention="1 week",
|
backtrace=True,
|
||||||
backtrace=True,
|
diagnose=True,
|
||||||
diagnose=True,
|
enqueue=True
|
||||||
enqueue=True
|
)
|
||||||
)
|
logurulogger.add(
|
||||||
logurulogger.add(
|
os.path.join(self.log_path, "info.log.{time:YYYY-MM-DD}"),
|
||||||
os.path.join(self.log_path, "info.log.{time:YYYY-MM-DD}"),
|
format=LOG_FORMAT,
|
||||||
format=LOG_FORMAT,
|
level=logging.INFO,
|
||||||
level=logging.INFO,
|
rotation="00:00",
|
||||||
rotation="00:00",
|
retention="1 week",
|
||||||
retention="1 week",
|
enqueue=True
|
||||||
enqueue=True
|
)
|
||||||
)
|
|
||||||
logurulogger.add(
|
logurulogger.add(
|
||||||
sys.stdout,
|
sys.stdout,
|
||||||
format=LOG_FORMAT,
|
format=LOG_FORMAT,
|
||||||
@ -92,20 +70,9 @@ class Logging:
|
|||||||
colorize=True,
|
colorize=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
logurulogger.add(self._log_to_redis, level="INFO", format=LOG_FORMAT)
|
|
||||||
self.logger = logurulogger
|
self.logger = logurulogger
|
||||||
|
|
||||||
|
|
||||||
def _log_to_redis(self, message):
|
|
||||||
"""将日志写入 Redis 列表"""
|
|
||||||
try:
|
|
||||||
self.redis_client.rpush(f"nlp.logger.{config.env_version}.log", json.dumps({"message": message}))
|
|
||||||
except redis.exceptions.ConnectionError as e:
|
|
||||||
logger.error(f"write {message} Redis connection error: {e}")
|
|
||||||
except redis.exceptions.TimeoutError as e:
|
|
||||||
logger.error(f"write {message} Redis operation timed out: {e}")
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"write {message} Unexpected error: {e}")
|
|
||||||
|
|
||||||
def _reset_log_handler(self):
|
def _reset_log_handler(self):
|
||||||
for log in LOG_NAME:
|
for log in LOG_NAME:
|
||||||
|
@ -317,18 +317,22 @@ def action2silent(
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
startfrom = 0 # 上一个batch的最后一帧
|
startfrom = 0 # 上一个batch的最后一帧
|
||||||
frame_config= []
|
frame_config= [[1, 200, True]]
|
||||||
audio_frame_length = len(mel_chunks) # TODO: 确认是否为 batch_size
|
audio_frame_length = len(mel_chunks) # TODO: 确认是否为 batch_size
|
||||||
startfrom = startfrom if startfrom>= frame_config[0][0] else frame_config[0][0]
|
startfrom = startfrom if startfrom>= frame_config[0][0] else frame_config[0][0]
|
||||||
first_speak, last_speak = True, False
|
first_speak, last_speak = True, False
|
||||||
is_silent= True # 当前batch是否为静默
|
is_silent= True # 当前batch是否为静默
|
||||||
last_direction = 1 # -1 为反方向
|
last_direction = 1 # -1 为反方向
|
||||||
start_idx_list, current_direction = play_in_loop_v2(
|
i = 0
|
||||||
frame_config,
|
while i<=10:
|
||||||
startfrom,
|
start_idx_list, last_direction = play_in_loop_v2(
|
||||||
audio_frame_length,
|
frame_config,
|
||||||
last_direction,
|
startfrom,
|
||||||
is_silent,
|
audio_frame_length,
|
||||||
first_speak,
|
last_direction,
|
||||||
last_speak,
|
is_silent,
|
||||||
)
|
first_speak,
|
||||||
|
last_speak,
|
||||||
|
)
|
||||||
|
startfrom = start_idx_list[-1]
|
||||||
|
i+=1
|
Loading…
Reference in New Issue
Block a user