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. 63
      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.manager import device_manager
from app.core.device.dispatcher import device_dispatcher from app.core.device.dispatcher import device_dispatcher
from app.schemas.at import ATCommandRequest, ATCommandResponse 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() router = APIRouter()

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

@ -10,9 +10,9 @@ from app.schemas.adb import (
ClickRequest, InputRequest, ScreenshotResponse, ClickRequest, InputRequest, ScreenshotResponse,
InstallRequest, InstallResponse, LogcatRequest, LogcatResponse 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() 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.manager import device_manager
from app.core.device.dispatcher import device_dispatcher from app.core.device.dispatcher import device_dispatcher
from app.schemas.plnk import PLNKRequest, PLNKResponse 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() 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.manager import device_manager
from app.core.device.dispatcher import device_dispatcher from app.core.device.dispatcher import device_dispatcher
from app.schemas.ssh import SSHExecRequest, SSHExecResponse 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() 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.core.config.settings import config
from app.utils.api_decorators import handle_api_errors 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() 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.at_service import AtService
from app.services.plnk_service import PlnkService from app.services.plnk_service import PlnkService
from app.services.atx_service import AtxService 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: class DeviceDispatcher:
"""设备分发器 - 根据设备协议类型调用相应的服务""" """设备分发器 - 根据设备协议类型调用相应的服务"""

4
app/core/device/manager.py

@ -7,9 +7,9 @@ import asyncio
from enum import Enum from enum import Enum
from app.core.config import ProtocolType, DeviceStatus from app.core.config import ProtocolType, DeviceStatus
from app.schemas.device import Device, DeviceCreate, DeviceUpdate 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): class DeviceSource(Enum):
"""设备来源枚举""" """设备来源枚举"""

4
app/core/websocket/adapter.py

@ -8,10 +8,10 @@ import json
from datetime import datetime from datetime import datetime
from app.core.websocket.client import WebSocketClient from app.core.websocket.client import WebSocketClient
from app.core.websocket.channel import WebSocketChannel, ChannelMessage 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 from datetime import timedelta
logger = get_logger(__name__) logger = get_structured_logger(__name__, LogLevel.INFO)
class WebSocketAdapter: class WebSocketAdapter:
"""WebSocket适配器 - 连接WebSocket客户端和Channel """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 enum import Enum
from dataclasses import dataclass from dataclasses import dataclass
from datetime import datetime 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): class ChannelState(Enum):
"""Channel状态枚举""" """Channel状态枚举"""

4
app/core/websocket/client.py

@ -9,9 +9,9 @@ from typing import Any, Optional, Dict, Callable
from enum import Enum from enum import Enum
from datetime import datetime from datetime import datetime
import websockets 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): class WebSocketClientState(Enum):
"""WebSocket客户端状态枚举""" """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.client import WebSocketClient
from app.core.websocket.channel import WebSocketChannel from app.core.websocket.channel import WebSocketChannel
from app.core.websocket.adapter import WebSocketAdapter 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: class WebSocketManager:
"""WebSocket管理器 - 统一管理多个WebSocket客户端和Channel的连接""" """WebSocket管理器 - 统一管理多个WebSocket客户端和Channel的连接"""

4
app/services/adb_service.py

@ -10,9 +10,9 @@ from app.schemas.adb import (
ClickRequest, InputRequest, ScreenshotResponse, ClickRequest, InputRequest, ScreenshotResponse,
InstallRequest, InstallResponse, LogcatRequest, LogcatResponse 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: class AdbService:
"""ADB服务类""" """ADB服务类"""

4
app/services/at_service.py

@ -7,9 +7,9 @@ import serial
from typing import Optional from typing import Optional
from app.core.device.manager import device_manager from app.core.device.manager import device_manager
from app.schemas.at import ATCommandRequest, ATCommandResponse, SerialConnectionInfo 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: class AtService:
"""AT服务类""" """AT服务类"""

4
app/services/atx_service.py

@ -7,9 +7,9 @@ from typing import Optional, List
import uiautomator2 as u2 import uiautomator2 as u2
from app.core.device.manager import device_manager from app.core.device.manager import device_manager
from app.schemas.adb import ClickRequest, InputRequest, ScreenshotResponse 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: class AtxService:
"""ATX服务类""" """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.manager import device_manager, DeviceSource
from app.core.device.dispatcher import device_dispatcher from app.core.device.dispatcher import device_dispatcher
from app.services.auto_discovery_adb_service import AutoDiscoveryAdbService 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: class DeviceService:
"""设备管理服务""" """设备管理服务"""

4
app/services/plnk_service.py

@ -8,9 +8,9 @@ import serial
from typing import Optional, Dict, Any from typing import Optional, Dict, Any
from app.core.device.manager import device_manager from app.core.device.manager import device_manager
from app.schemas.plnk import PLNKRequest, PLNKResponse, TCPConnectionInfo, PLNKConnectionInfo 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: class PlnkService:
"""PLNK服务类""" """PLNK服务类"""

4
app/services/ssh_service.py

@ -4,9 +4,9 @@ from typing import Optional
import paramiko import paramiko
from app.core.device.manager import device_manager from app.core.device.manager import device_manager
from app.schemas.ssh import SSHExecRequest, SSHExecResponse, SSHConnectionInfo 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: class SshService:
"""SSH服务类 - 实现SSH协议相关操作""" """SSH服务类 - 实现SSH协议相关操作"""

4
app/utils/adb_utils.py

@ -4,9 +4,9 @@ ADB工具模块 - 提供常用的ADB操作函数
import re import re
import subprocess import subprocess
from typing import List, Optional, Dict, Any 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: class AdbUtils:

4
app/utils/api_decorators.py

@ -4,9 +4,9 @@ API装饰器工具
import functools import functools
from typing import Callable, Any from typing import Callable, Any
from fastapi import HTTPException, status 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: def handle_api_errors(func: Callable) -> Callable:
"""API错误处理装饰器""" """API错误处理装饰器"""

4
app/utils/serial_utils.py

@ -1,9 +1,9 @@
import serial import serial
import serial.tools.list_ports import serial.tools.list_ports
from typing import List, Dict, Any 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: class SerialUtils:
"""串口工具类""" """串口工具类"""

4
app/utils/tcp_utils.py

@ -1,9 +1,9 @@
import socket import socket
import time import time
from typing import Dict, Any, Optional 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: class TCPUtils:
"""TCP工具类""" """TCP工具类"""

63
modify.md

@ -673,4 +673,65 @@ WebSocket服务器 ↔ WebSocketClient ↔ WebSocketAdapter ↔ WebSocketChannel
- 适配器被停止(调用 `adapter.stop()` - 适配器被停止(调用 `adapter.stop()`
- 任务被取消(`asyncio.CancelledError`) - 任务被取消(`asyncio.CancelledError`)
**结论**: `_heartbeat_loop` 在适配器创建并启动后立即开始运行,按照指定的心跳间隔定期发送心跳消息,直到客户端断开或适配器停止。 **结论**: `_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