30 lines
1.0 KiB
Python

import sys
import os
import logging
from typing import Optional
def create_logger(name: str,
level: [str, int],
stream_stderr: bool = False,
stream_format: str = "%(asctime)s | %(name)s [%(levelname)s] %(message)s",
file: bool = False,
file_path: Optional[None] = None,
file_format: str = "%(asctime)s | %(name)s [%(levelname)s] %(message)s"):
logger = logging.getLogger(name)
logger.setLevel(level)
stream_handler = logging.StreamHandler(sys.stderr if stream_stderr else sys.stdout)
stream_handler.setFormatter(logging.Formatter(stream_format))
logger.addHandler(stream_handler)
if file:
if not file_path:
file_path = os.path.join("logs", name)
os.makedirs(os.path.dirname(file_path), exist_ok=True)
file_handler = logging.FileHandler(file_path)
file_handler.setFormatter(logging.Formatter(file_format))
logger.addHandler(file_handler)
return logger