Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions swanlab/core_python/uploader/thread/log_collector.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@
import time
from typing import List

from swanlab.error import SyncError
from swanlab.error import NetworkError, SyncError
from swanlab.log import swanlog
from swanlab.swanlab_settings import get_settings
from .task_types import UploadType
from .utils import LogQueue
from .utils import ThreadUtil, ThreadTaskABC

NETWORK_ERROR_INTERVAL = 30


class LogCollectorTask(ThreadTaskABC):
"""
Expand All @@ -32,9 +34,9 @@ def __init__(self, upload_type=UploadType):
self.lock = False
self.upload_type = upload_type
self.upload_interval = get_settings().upload_interval
self._last_network_error_log_timestamp = 0.0

@staticmethod
def report_known_error(errors: List[SyncError]):
def report_known_error(self, errors: List[SyncError]):
"""
上报错误信息
:param errors: 错误信息列表
Expand All @@ -43,7 +45,12 @@ def report_known_error(errors: List[SyncError]):
return
# 去重
errors = list(set(errors))
now = time.time()
for error in errors:
if isinstance(error, NetworkError):
if now - self._last_network_error_log_timestamp < NETWORK_ERROR_INTERVAL:
continue
self._last_network_error_log_timestamp = now
swanlog.__getattribute__(error.log_level)(error.message)

def upload(self):
Expand Down
5 changes: 4 additions & 1 deletion swanlab/error.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
@Description:
swanlab全局错误定义
"""
from datetime import datetime

import requests


Expand Down Expand Up @@ -78,8 +80,9 @@ class NetworkError(SyncError):

def __init__(self, *args):
super().__init__(*args)
timestamp = datetime.now().strftime("%Y.%m.%d %H:%M:%S")
self.log_level = "warning"
self.message = "network error, swanlab will resume uploads when the network improves"
self.message = f"[{timestamp}] network error, swanlab will resume uploads when the network improves"


class DataTypeError(Exception):
Expand Down