2023-03-10 13:43:18 +00:00
|
|
|
import logging
|
2023-06-05 03:27:37 +00:00
|
|
|
import os
|
2023-09-13 06:36:35 +00:00
|
|
|
from pathlib import Path
|
2023-06-05 03:27:37 +00:00
|
|
|
|
|
|
|
log_path = Path(os.path.dirname(__file__)).parent / "bot.log"
|
2023-03-10 13:43:18 +00:00
|
|
|
|
|
|
|
|
|
|
|
def getlogger():
|
2023-04-17 13:20:13 +00:00
|
|
|
# create a custom logger if no log handler
|
2023-03-10 13:43:18 +00:00
|
|
|
logger = logging.getLogger(__name__)
|
2023-04-17 13:20:13 +00:00
|
|
|
if not logger.hasHandlers():
|
|
|
|
logger.setLevel(logging.INFO)
|
|
|
|
# create handlers
|
|
|
|
warn_handler = logging.StreamHandler()
|
|
|
|
info_handler = logging.StreamHandler()
|
2023-06-05 03:27:37 +00:00
|
|
|
error_handler = logging.FileHandler("bot.log", mode="a")
|
2023-04-17 13:20:13 +00:00
|
|
|
warn_handler.setLevel(logging.WARNING)
|
|
|
|
error_handler.setLevel(logging.ERROR)
|
|
|
|
info_handler.setLevel(logging.INFO)
|
2023-03-10 13:43:18 +00:00
|
|
|
|
2023-04-17 13:20:13 +00:00
|
|
|
# create formatters
|
|
|
|
warn_format = logging.Formatter(
|
2023-09-13 06:36:35 +00:00
|
|
|
"%(asctime)s - %(funcName)s - %(levelname)s - %(message)s",
|
2023-06-05 03:27:37 +00:00
|
|
|
)
|
2023-04-17 13:20:13 +00:00
|
|
|
error_format = logging.Formatter(
|
2023-09-13 06:36:35 +00:00
|
|
|
"%(asctime)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s",
|
2023-06-05 03:27:37 +00:00
|
|
|
)
|
|
|
|
info_format = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
|
2023-03-10 13:43:18 +00:00
|
|
|
|
2023-04-17 13:20:13 +00:00
|
|
|
# set formatter
|
|
|
|
warn_handler.setFormatter(warn_format)
|
|
|
|
error_handler.setFormatter(error_format)
|
|
|
|
info_handler.setFormatter(info_format)
|
2023-03-10 13:43:18 +00:00
|
|
|
|
2023-04-17 13:20:13 +00:00
|
|
|
# add handlers to logger
|
|
|
|
logger.addHandler(warn_handler)
|
|
|
|
logger.addHandler(error_handler)
|
|
|
|
logger.addHandler(info_handler)
|
2023-03-10 13:43:18 +00:00
|
|
|
|
|
|
|
return logger
|