Skip to content

Commit 3edb394

Browse files
committed
log refactor
1 parent 3567ddf commit 3edb394

File tree

3 files changed

+51
-30
lines changed

3 files changed

+51
-30
lines changed

fastdeploy/worker/worker_process.py

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -27,36 +27,12 @@
2727

2828
import numpy as np
2929

30-
_original_getLogger = logging.getLogger
30+
from tools.logger_patch import intercept_paddle_loggers
3131

32-
33-
def _patched_getLogger(name=None):
34-
"""Intercept paddle-related logger creation and configure format immediately"""
35-
logger = _original_getLogger(name)
36-
if name and str(name).startswith("paddle"):
37-
# Configure paddle logger immediately
38-
formatter = logging.Formatter(
39-
"%(levelname)-8s %(asctime)s %(process)-5s %(filename)s[line:%(lineno)d] %(message)s",
40-
datefmt="%Y-%m-%d %H:%M:%S",
41-
)
42-
logger.setLevel(logging.INFO)
43-
for handler in logger.handlers[:]:
44-
logger.removeHandler(handler)
45-
stream_handler = logging.StreamHandler()
46-
stream_handler.setFormatter(formatter)
47-
logger.addHandler(stream_handler)
48-
logger.propagate = False
49-
return logger
50-
51-
52-
logging.getLogger = _patched_getLogger
53-
54-
import paddle
55-
import paddle.distributed as dist
56-
from paddle.distributed import fleet
57-
58-
# Restore original getLogger
59-
logging.getLogger = _original_getLogger
32+
with intercept_paddle_loggers():
33+
import paddle
34+
import paddle.distributed as dist
35+
from paddle.distributed import fleet
6036

6137
from fastdeploy import envs
6238
from fastdeploy.config import (
@@ -104,7 +80,6 @@ def _patched_getLogger(name=None):
10480
def _configure_third_party_loggers():
10581
"""Unify third-party library (paddleformers, paddle) logger formats.
10682
Should be called after these libraries are imported."""
107-
import logging
10883

10984
# Create standard format (without color)
11085
formatter = logging.Formatter(

tools/__init__.py

Whitespace-only changes.

tools/logger_patch.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"""
2+
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License"
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
"""
16+
17+
import logging
18+
from contextlib import contextmanager
19+
20+
21+
@contextmanager
22+
def intercept_paddle_loggers():
23+
"""Intercept and configure paddle loggers during import."""
24+
_original = logging.getLogger
25+
26+
def _patched(name=None):
27+
logger = _original(name)
28+
if name and str(name).startswith("paddle"):
29+
formatter = logging.Formatter(
30+
"%(levelname)-8s %(asctime)s %(process)-5s %(filename)s[line:%(lineno)d] %(message)s",
31+
datefmt="%Y-%m-%d %H:%M:%S",
32+
)
33+
logger.setLevel(logging.INFO)
34+
for handler in logger.handlers[:]:
35+
logger.removeHandler(handler)
36+
stream_handler = logging.StreamHandler()
37+
stream_handler.setFormatter(formatter)
38+
logger.addHandler(stream_handler)
39+
logger.propagate = False
40+
return logger
41+
42+
logging.getLogger = _patched
43+
try:
44+
yield
45+
finally:
46+
logging.getLogger = _original

0 commit comments

Comments
 (0)