Spaces:
Running
Running
File size: 1,492 Bytes
acd7cf4 b9d49bb acd7cf4 b9d49bb 0b9d8c7 b9d49bb acd7cf4 b9d49bb acd7cf4 b9d49bb acd7cf4 0b9d8c7 b9d49bb acd7cf4 b9d49bb 0b9d8c7 b9d49bb 0b9d8c7 b9d49bb acd7cf4 b9d49bb acd7cf4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import logging
from logging.handlers import RotatingFileHandler
from rich.logging import RichHandler
logger = logging.getLogger("graphgen")
def set_logger(
log_file: str,
file_level: int = logging.DEBUG,
console_level: int = logging.INFO,
*,
if_stream: bool = True,
max_bytes: int = 50 * 1024 * 1024, # 50 MB
backup_count: int = 5,
force: bool = False,
):
if logger.hasHandlers() and not force:
return
if force:
logger.handlers.clear()
logger.setLevel(
min(file_level, console_level)
) # Set to the lowest level to capture all logs
logger.propagate = False
if logger.handlers:
logger.handlers.clear()
if if_stream:
console = RichHandler(
level=console_level, show_path=False, rich_tracebacks=True
)
console.setFormatter(logging.Formatter("%(message)s"))
logger.addHandler(console)
file_handler = RotatingFileHandler(
log_file,
maxBytes=max_bytes,
backupCount=backup_count,
encoding="utf-8",
)
file_handler.setLevel(file_level)
file_handler.setFormatter(
logging.Formatter(
"[%(asctime)s] %(levelname)s [%(name)s:%(filename)s:%(lineno)d] %(message)s",
datefmt="%y-%m-%d %H:%M:%S",
)
)
logger.addHandler(file_handler)
def parse_log(log_file: str):
with open(log_file, "r", encoding="utf-8") as f:
lines = f.readlines()
return lines
|