Skip to content

Commit 5f82b84

Browse files
committed
Fix duplicate alert log
1 parent c2a02a0 commit 5f82b84

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

src/monitapi/libs/logging.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,38 @@
11
import logging
22
import sys
33

4-
alert_logger = logging.getLogger("monitapi.alert")
5-
standard_logger = logging.getLogger("monitapi")
4+
alert_logger = None
5+
standard_logger = None
66

7-
for logger in (alert_logger, standard_logger):
8-
for handler in logger.handlers:
9-
logger.removeHandler(handler)
7+
8+
def get_alert_logger() -> logging.Logger:
9+
global alert_logger
10+
if alert_logger is None:
11+
alert_logger = logging.getLogger("monitapi.alert")
12+
for handler in alert_logger.handlers:
13+
alert_logger.removeHandler(handler)
1014

1115
handler = logging.StreamHandler(sys.stderr)
1216

1317
FORMAT = '%(asctime)s %(levelname)s [%(name)s] [%(threadName)s] %(message)s'
1418
handler.setFormatter(logging.Formatter(FORMAT))
15-
logger.addHandler(handler)
16-
17-
standard_logger.setLevel(logging.INFO)
18-
19-
20-
def get_alert_logger() -> logging.Logger:
19+
alert_logger.addHandler(handler)
20+
alert_logger.propagate = False
2121
return alert_logger
2222

2323

2424
def get_logger() -> logging.Logger:
25+
global standard_logger
26+
if standard_logger is None:
27+
standard_logger = logging.getLogger("monitapi")
28+
for handler in standard_logger.handlers:
29+
standard_logger.removeHandler(handler)
30+
31+
handler = logging.StreamHandler(sys.stderr)
32+
33+
FORMAT = '%(asctime)s %(levelname)s [%(name)s] [%(threadName)s] %(message)s'
34+
handler.setFormatter(logging.Formatter(FORMAT))
35+
standard_logger.addHandler(handler)
36+
standard_logger.setLevel(logging.INFO)
37+
standard_logger.propagate = False
2538
return standard_logger

0 commit comments

Comments
 (0)