Browse Source

log 修复只保留 error 跟正常数据

origin/hotfix/hlk-flight
root 4 months ago
parent
commit
8b9fe2dc71
  1. 4
      app/api/v1/endpoints/at.py
  2. 4
      app/api/v1/endpoints/devices.py
  3. 4
      app/api/v1/endpoints/plnk.py
  4. 4
      app/api/v1/endpoints/ssh.py
  5. 4
      app/api/v1/endpoints/websocket.py
  6. 4
      app/core/device/dispatcher.py
  7. 4
      app/core/device/manager.py
  8. 4
      app/core/websocket/adapter.py
  9. 4
      app/core/websocket/channel.py
  10. 4
      app/core/websocket/client.py
  11. 4
      app/core/websocket/manager.py
  12. 4
      app/services/adb_service.py
  13. 4
      app/services/at_service.py
  14. 4
      app/services/atx_service.py
  15. 4
      app/services/device_service.py
  16. 4
      app/services/plnk_service.py
  17. 4
      app/services/ssh_service.py
  18. 4
      app/utils/adb_utils.py
  19. 4
      app/utils/api_decorators.py
  20. 4
      app/utils/serial_utils.py
  21. 4
      app/utils/tcp_utils.py
  22. 61
      modify.md

4
app/api/v1/endpoints/at.py

@ -2,9 +2,9 @@ from fastapi import APIRouter, HTTPException, status
from app.core.device.manager import device_manager
from app.core.device.dispatcher import device_dispatcher
from app.schemas.at import ATCommandRequest, ATCommandResponse
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
router = APIRouter()

4
app/api/v1/endpoints/devices.py

@ -10,9 +10,9 @@ from app.schemas.adb import (
ClickRequest, InputRequest, ScreenshotResponse,
InstallRequest, InstallResponse, LogcatRequest, LogcatResponse
)
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
router = APIRouter()

4
app/api/v1/endpoints/plnk.py

@ -2,9 +2,9 @@ from fastapi import APIRouter, HTTPException, status
from app.core.device.manager import device_manager
from app.core.device.dispatcher import device_dispatcher
from app.schemas.plnk import PLNKRequest, PLNKResponse
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
router = APIRouter()

4
app/api/v1/endpoints/ssh.py

@ -2,9 +2,9 @@ from fastapi import APIRouter, HTTPException, status
from app.core.device.manager import device_manager
from app.core.device.dispatcher import device_dispatcher
from app.schemas.ssh import SSHExecRequest, SSHExecResponse
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
router = APIRouter()

4
app/api/v1/endpoints/websocket.py

@ -11,9 +11,9 @@ from app.schemas.websocket import (
)
from app.core.config.settings import config
from app.utils.api_decorators import handle_api_errors
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
router = APIRouter()

4
app/core/device/dispatcher.py

@ -9,9 +9,9 @@ from app.services.ssh_service import SshService
from app.services.at_service import AtService
from app.services.plnk_service import PlnkService
from app.services.atx_service import AtxService
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class DeviceDispatcher:
"""设备分发器 - 根据设备协议类型调用相应的服务"""

4
app/core/device/manager.py

@ -7,9 +7,9 @@ import asyncio
from enum import Enum
from app.core.config import ProtocolType, DeviceStatus
from app.schemas.device import Device, DeviceCreate, DeviceUpdate
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class DeviceSource(Enum):
"""设备来源枚举"""

4
app/core/websocket/adapter.py

@ -8,10 +8,10 @@ import json
from datetime import datetime
from app.core.websocket.client import WebSocketClient
from app.core.websocket.channel import WebSocketChannel, ChannelMessage
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
from datetime import timedelta
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class WebSocketAdapter:
"""WebSocket适配器 - 连接WebSocket客户端和Channel

4
app/core/websocket/channel.py

@ -7,9 +7,9 @@ from typing import Any, Optional, Callable, Dict, List
from enum import Enum
from dataclasses import dataclass
from datetime import datetime
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class ChannelState(Enum):
"""Channel状态枚举"""

4
app/core/websocket/client.py

@ -9,9 +9,9 @@ from typing import Any, Optional, Dict, Callable
from enum import Enum
from datetime import datetime
import websockets
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class WebSocketClientState(Enum):
"""WebSocket客户端状态枚举"""

4
app/core/websocket/manager.py

@ -8,9 +8,9 @@ from datetime import datetime
from app.core.websocket.client import WebSocketClient
from app.core.websocket.channel import WebSocketChannel
from app.core.websocket.adapter import WebSocketAdapter
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class WebSocketManager:
"""WebSocket管理器 - 统一管理多个WebSocket客户端和Channel的连接"""

4
app/services/adb_service.py

@ -10,9 +10,9 @@ from app.schemas.adb import (
ClickRequest, InputRequest, ScreenshotResponse,
InstallRequest, InstallResponse, LogcatRequest, LogcatResponse
)
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class AdbService:
"""ADB服务类"""

4
app/services/at_service.py

@ -7,9 +7,9 @@ import serial
from typing import Optional
from app.core.device.manager import device_manager
from app.schemas.at import ATCommandRequest, ATCommandResponse, SerialConnectionInfo
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class AtService:
"""AT服务类"""

4
app/services/atx_service.py

@ -7,9 +7,9 @@ from typing import Optional, List
import uiautomator2 as u2
from app.core.device.manager import device_manager
from app.schemas.adb import ClickRequest, InputRequest, ScreenshotResponse
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class AtxService:
"""ATX服务类"""

4
app/services/device_service.py

@ -6,9 +6,9 @@ from typing import Dict, List, Optional, Any, Union
from app.core.device.manager import device_manager, DeviceSource
from app.core.device.dispatcher import device_dispatcher
from app.services.auto_discovery_adb_service import AutoDiscoveryAdbService
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class DeviceService:
"""设备管理服务"""

4
app/services/plnk_service.py

@ -8,9 +8,9 @@ import serial
from typing import Optional, Dict, Any
from app.core.device.manager import device_manager
from app.schemas.plnk import PLNKRequest, PLNKResponse, TCPConnectionInfo, PLNKConnectionInfo
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class PlnkService:
"""PLNK服务类"""

4
app/services/ssh_service.py

@ -4,9 +4,9 @@ from typing import Optional
import paramiko
from app.core.device.manager import device_manager
from app.schemas.ssh import SSHExecRequest, SSHExecResponse, SSHConnectionInfo
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class SshService:
"""SSH服务类 - 实现SSH协议相关操作"""

4
app/utils/adb_utils.py

@ -4,9 +4,9 @@ ADB工具模块 - 提供常用的ADB操作函数
import re
import subprocess
from typing import List, Optional, Dict, Any
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class AdbUtils:

4
app/utils/api_decorators.py

@ -4,9 +4,9 @@ API装饰器工具
import functools
from typing import Callable, Any
from fastapi import HTTPException, status
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
def handle_api_errors(func: Callable) -> Callable:
"""API错误处理装饰器"""

4
app/utils/serial_utils.py

@ -1,9 +1,9 @@
import serial
import serial.tools.list_ports
from typing import List, Dict, Any
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class SerialUtils:
"""串口工具类"""

4
app/utils/tcp_utils.py

@ -1,9 +1,9 @@
import socket
import time
from typing import Dict, Any, Optional
from app.utils.log import get_logger
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_logger(__name__)
logger = get_structured_logger(__name__, LogLevel.INFO)
class TCPUtils:
"""TCP工具类"""

61
modify.md

@ -674,3 +674,64 @@ WebSocket服务器 ↔ WebSocketClient ↔ WebSocketAdapter ↔ WebSocketChannel
- 任务被取消(`asyncio.CancelledError`)
**结论**: `_heartbeat_loop` 在适配器创建并启动后立即开始运行,按照指定的心跳间隔定期发送心跳消息,直到客户端断开或适配器停止。
### 日志系统统一更新
**问题**: 项目中大量文件仍在使用旧的 `get_logger(__name__)` 方式,需要统一更新为新的结构化日志系统
**解决方案**: 将所有核心模块的日志导入方式从 `get_logger` 更新为 `get_structured_logger`
**更新的文件列表**:
#### 核心模块 (app/core/)
- `app/core/websocket/adapter.py` - WebSocket适配器
- `app/core/websocket/manager.py` - WebSocket管理器
- `app/core/websocket/client.py` - WebSocket客户端
- `app/core/websocket/channel.py` - WebSocket通道
- `app/core/device/manager.py` - 设备管理器
- `app/core/device/dispatcher.py` - 设备分发器
#### API端点 (app/api/v1/endpoints/)
- `app/api/v1/endpoints/websocket.py` - WebSocket API
- `app/api/v1/endpoints/devices.py` - 设备API
- `app/api/v1/endpoints/at.py` - AT命令API
- `app/api/v1/endpoints/ssh.py` - SSH API
- `app/api/v1/endpoints/plnk.py` - PLNK API
#### 服务层 (app/services/)
- `app/services/adb_service.py` - ADB服务
- `app/services/device_service.py` - 设备服务
- `app/services/at_service.py` - AT服务
- `app/services/atx_service.py` - ATX服务
- `app/services/plnk_service.py` - PLNK服务
- `app/services/ssh_service.py` - SSH服务
#### 工具类 (app/utils/)
- `app/utils/api_decorators.py` - API装饰器
- `app/utils/adb_utils.py` - ADB工具
- `app/utils/tcp_utils.py` - TCP工具
- `app/utils/serial_utils.py` - 串口工具
**更新内容**:
```python
# 旧方式
from app.utils.log import get_logger
logger = get_logger(__name__)
# 新方式
from app.utils.structured_log import get_structured_logger, LogLevel
logger = get_structured_logger(__name__, LogLevel.INFO)
```
**优势**:
- ✅ 统一使用结构化日志系统
- ✅ 日志文件简化管理(只有 `app.log``error.log` 两个文件)
- ✅ 异常日志包含完整堆栈跟踪
- ✅ 正常日志不包含堆栈跟踪,减少文件大小
- ✅ 按日志级别自动分流
- ✅ 保持控制台输出功能
**注意事项**:
- 测试文件(test_*.py)暂未更新,因为它们可能不需要结构化日志
- 所有核心业务逻辑模块已更新完成
- 新的日志系统提供更好的日志管理和分析能力
Loading…
Cancel
Save