Skip to content

Commit 872557a

Browse files
feat: add log RichHandler & RotatingFileHandler
1 parent 54a578b commit 872557a

1 file changed

Lines changed: 32 additions & 19 deletions

File tree

graphgen/utils/log.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,45 @@
11
import logging
2+
from logging.handlers import RotatingFileHandler
23

3-
logger = logging.getLogger("graphgen")
4+
from rich.logging import RichHandler
45

5-
def set_logger(log_file: str, log_level: int = logging.INFO, if_stream: bool = True):
6-
logger.setLevel(log_level)
6+
logger = logging.getLogger("graphgen")
77

8-
formatter = logging.Formatter(
9-
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
10-
)
118

12-
file_handler = logging.FileHandler(log_file, mode='w')
13-
file_handler.setLevel(log_level)
14-
file_handler.setFormatter(formatter)
9+
def set_logger(
10+
log_file: str,
11+
log_level: int = logging.INFO,
12+
if_stream: bool = True,
13+
max_bytes: int = 50 * 1024 * 1024, # 50 MB
14+
backup_count: int = 5,
15+
):
16+
logger.setLevel(log_level)
17+
logger.propagate = False
1518

16-
stream_handler = None
19+
if logger.handlers:
20+
logger.handlers.clear()
1721

1822
if if_stream:
19-
stream_handler = logging.StreamHandler()
20-
stream_handler.setLevel(log_level)
21-
stream_handler.setFormatter(formatter)
22-
23-
if not logger.handlers:
24-
logger.addHandler(file_handler)
25-
if if_stream and stream_handler:
26-
logger.addHandler(stream_handler)
23+
console = RichHandler(level=log_level, show_path=False, rich_tracebacks=True)
24+
console.setFormatter(logging.Formatter("%(message)s"))
25+
logger.addHandler(console)
26+
27+
file_handler = RotatingFileHandler(
28+
log_file,
29+
maxBytes=max_bytes,
30+
backupCount=backup_count,
31+
encoding="utf-8",
32+
)
33+
file_handler.setFormatter(
34+
logging.Formatter(
35+
"[%(asctime)s] %(levelname)s [%(name)s:%(filename)s:%(lineno)d] %(message)s",
36+
datefmt="%y-%m-%d %H:%M:%S",
37+
)
38+
)
39+
logger.addHandler(file_handler)
2740

2841

2942
def parse_log(log_file: str):
30-
with open(log_file, "r", encoding='utf-8') as f:
43+
with open(log_file, "r", encoding="utf-8") as f:
3144
lines = f.readlines()
3245
return lines

0 commit comments

Comments
 (0)