添加默认logger

This commit is contained in:
xunbu
2025-09-09 17:32:08 +08:00
parent 787009dcaa
commit e82f6f1d15
4 changed files with 88 additions and 84 deletions

View File

@@ -40,7 +40,7 @@ class PartialAgentResultError(ValueError):
@dataclass(kw_only=True)
class AgentConfig:
logger: logging.Logger
logger: logging.Logger = global_logger
base_url: str
api_key: str | None = None
model_id: str
@@ -236,7 +236,7 @@ class Agent:
self.max_concurrent = config.concurrent
self.timeout = httpx.Timeout(connect=5, read=config.timeout, write=300, pool=10)
self.thinking = config.thinking
self.logger = config.logger or global_logger
self.logger = config.logger
self.total_error_counter = TotalErrorCounter(logger=self.logger)
# 新增:用于统计最终未解决的错误
self.unresolved_error_lock = Lock()
@@ -461,7 +461,6 @@ class Agent:
async with httpx.AsyncClient(
trust_env=False, proxies=proxies, verify=False, limits=limits
) as client:
async def send_with_semaphore(p_text: str):
async with semaphore:
result = await self.send_async(

View File

@@ -12,7 +12,7 @@ from docutranslate.logger import global_logger
@dataclass(kw_only=True)
class ConverterConfig(ABC):
logger: Logger | None = None
logger: Logger = global_logger
@abstractmethod
def gethash(self) -> Hashable:
@@ -23,9 +23,7 @@ class Converter(ABC):
def __init__(self, config: ConverterConfig | None = None):
self.config = config
if config:
self.logger = config.logger or global_logger
else:
self.logger = global_logger
self.logger = config.logger
@abstractmethod
def convert(self, document: Document) -> Document:

View File

@@ -1,29 +1,35 @@
# SPDX-FileCopyrightText: 2025 QinHan
# SPDX-License-Identifier: MPL-2.0
from abc import ABC, abstractmethod
from dataclasses import dataclass
from logging import Logger
from typing import TypeVar, Generic
from abc import ABC,abstractmethod
from docutranslate.ir.document import Document
from docutranslate.logger import global_logger
@dataclass(kw_only=True)
class TranslatorConfig:
logger:Logger|None=None
logger: Logger = global_logger
T = TypeVar('T', bound=Document)
class Translator(ABC, Generic[T]):
"""
翻译中间文本原地替换Translator不做格式转换
"""
def __init__(self, config: TranslatorConfig | None = None):
self.config = config
self.logger = config.logger or global_logger
@abstractmethod
def translate(self, document: T) -> Document:
...
@abstractmethod
async def translate_async(self, document: T) -> Document:
...

View File

@@ -9,11 +9,12 @@ from typing import Self, Generic, TypeVar
from docutranslate.exporter.base import Exporter
from docutranslate.ir.attachment_manager import AttachMentManager
from docutranslate.ir.document import Document
from docutranslate.logger import global_logger
@dataclass(kw_only=True)
class WorkflowConfig:
logger: Logger | None = None
logger: Logger = global_logger
T_Config = TypeVar("T_Config", bound=WorkflowConfig)