From 148578399ff891a1469a12624fecc2c37fd4a4ed Mon Sep 17 00:00:00 2001 From: HonestQiao Date: Sun, 23 Feb 2025 15:18:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E7=BD=AE=E6=97=A5=E5=BF=97=E5=8F=82=E6=95=B0?= =?UTF-8?q?=20(#116)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 使用配置文件设置日志参数 * update:优化 --------- Co-authored-by: 欣南科技 Co-authored-by: hrz <1710360675@qq.com> --- README.md | 26 ++++++++++---------------- config.yaml | 13 +++++++++++++ config/logger.py | 26 ++++++++++++++------------ docs/Deployment.md | 4 ++-- 4 files changed, 39 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 578b13dc..db674860 100644 --- a/README.md +++ b/README.md @@ -167,9 +167,10 @@ server: ### ASR -| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | -|:---:|:------:|:----:|:----:|:--:| -| ASR | FunASR | 本地使用 | 免费 | | +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:---:|:---------:|:----:|:----:|:--:| +| ASR | FunASR | 本地使用 | 免费 | | +| ASR | DoubaoASR | 接口调用 | 收费 | | --- @@ -179,22 +180,15 @@ server: 本项目支持以下三种部署方式,您可根据实际需求选择: -1. **[Docker 快速部署](./docs/Deployment.md)** +1. [Docker 快速部署](./docs/Deployment.md) 适合快速体验,不需过多环境配置。缺点是,拉取镜像有点慢。 -2. - * -*[借助 Docker 环境运行部署](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E5%80%9F%E5%8A%A9docker%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8C%E9%83%A8%E7%BD%B2) -** -适用于已安装 Docker 且希望对代码进行自定义修改的用户。 +2. [借助 Docker 环境运行部署](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E5%80%9F%E5%8A%A9docker%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8C%E9%83%A8%E7%BD%B2) + 适用于已安装 Docker 且希望对代码进行自定义修改的用户。 -3. - * - -*[本地源码运行](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%89%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C) -** -适合熟悉 Conda 环境或希望从零搭建运行环境的用户。 -对于对响应速度要求较高的场景,推荐使用本地源码运行方式以降低额外开销。 +3. [本地源码运行](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%89%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C) + 适合熟悉 Conda 环境或希望从零搭建运行环境的用户。 + 对于对响应速度要求较高的场景,推荐使用本地源码运行方式以降低额外开销。 ### 二、[固件编译](./docs/firmware-build.md) diff --git a/config.yaml b/config.yaml index 6a6e8b9c..c6347281 100644 --- a/config.yaml +++ b/config.yaml @@ -22,6 +22,19 @@ server: # 可选:设备白名单,如果设置了白名单,那么白名单的机器无论是什么token都可以连接。 #allowed_devices: # - "24:0A:C4:1D:3B:F0" # MAC地址列表 +log: + # 设置控制台输出的日志格式,时间、日志级别、标签、消息 + log_format: "{time:YY-MM-DD HH:mm:ss}[{extra[tag]}] - {level} - {message}" + # 设置日志文件输出的格式,时间、日志级别、标签、消息 + log_format_simple: "{time:YYYY-MM-DD HH:mm:ss} - {name} - {level} - {extra[tag]} - {message}" + # 设置日志等级:INFO、DEBUG + log_level: INFO + # 设置日志路径 + log_dir: tmp + # 设置日志文件 + log_file: "server.log" + # 设置数据文件路径 + data_dir: data manager: # 是否启用管理后台 # 目前这个模块还在开发中,建议:不要修改enabled选项 diff --git a/config/logger.py b/config/logger.py index cddd80d6..99968ca1 100644 --- a/config/logger.py +++ b/config/logger.py @@ -1,27 +1,29 @@ import os import sys from loguru import logger +from config.settings import load_config + +def setup_logging(): + """从配置文件中读取日志配置,并设置日志输出格式和级别""" + config = load_config() + log_config = config["log"] + log_format = log_config.get("log_format", "{time:YY-MM-DD HH:mm:ss}[{extra[tag]}] - {level} - {message}") + log_format_simple = log_config.get("log_format_file", "{time:YYYY-MM-DD HH:mm:ss} - {name} - {level} - {extra[tag]} - {message}") + log_level = log_config.get("log_level", "INFO") + log_dir = log_config.get("log_dir", "tmp") + log_file = log_config.get("log_file", "server.log") + data_dir = log_config.get("data_dir", "data") -def setup_logging(log_dir='tmp', data_dir='data'): - """配置全局彩色日志(不同区块不同标签)""" os.makedirs(log_dir, exist_ok=True) os.makedirs(data_dir, exist_ok=True) - # 设置日志格式,时间、日志级别、标签、消息 - log_format = ( - "{time:YY-MM-DD HH:mm:ss}" - "[{extra[tag]}]" - " - {level} - " - "{message}" - ) - # 配置日志输出 logger.remove() # 输出到控制台 - logger.add(sys.stdout, format=log_format, level="INFO") + logger.add(sys.stdout, format=log_format, level=log_level) # 输出到文件 - logger.add(os.path.join(log_dir, "server.log"), format="{time:YYYY-MM-DD HH:mm:ss} - {name} - {level} - {extra[tag]} - {message}", level="INFO") + logger.add(os.path.join(log_dir, log_file), format=log_format_simple, level=log_level) return logger diff --git a/docs/Deployment.md b/docs/Deployment.md index a1f31fdf..7f9aecbf 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -163,8 +163,8 @@ poetry run python app.py conda remove -n xiaozhi-esp32-server --all -y conda create -n xiaozhi-esp32-server python=3.10 -y conda activate xiaozhi-esp32-server -conda install conda-forge::libopus -conda install conda-forge::ffmpeg +conda install conda-forge::libopus -y +conda install conda-forge::ffmpeg -y ``` ## 2.安装本项目依赖