45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
# tools/weather_logger.py
|
|
|
|
import logging
|
|
import logging.handlers
|
|
from pathlib import Path
|
|
|
|
|
|
def set_up_logger():
|
|
logger = logging.getLogger()
|
|
|
|
if logger.hasHandlers():
|
|
return
|
|
|
|
logger.setLevel(logging.DEBUG)
|
|
logging.getLogger("PIL").setLevel(logging.WARNING)
|
|
formatter = logging.Formatter(
|
|
"{asctime} - {levelname:>7}: {message}", "%y-%m-%d %H:%M:%S", style="{"
|
|
)
|
|
log_dir = Path(__file__).parent.parent.joinpath("logs")
|
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
debugFileHandler = logging.handlers.RotatingFileHandler(
|
|
filename=log_dir.joinpath("debug.log"),
|
|
maxBytes=1_048_576,
|
|
backupCount=5,
|
|
)
|
|
debugFileHandler.setFormatter(formatter)
|
|
debugFileHandler.setLevel(logging.DEBUG)
|
|
|
|
infoFileHandler = logging.handlers.RotatingFileHandler(
|
|
filename=log_dir.joinpath("info.log"),
|
|
maxBytes=1_048_576,
|
|
backupCount=3,
|
|
)
|
|
infoFileHandler.setFormatter(formatter)
|
|
infoFileHandler.setLevel(logging.INFO)
|
|
|
|
console = logging.StreamHandler()
|
|
console.setFormatter(formatter)
|
|
console.setLevel(logging.INFO)
|
|
|
|
logger.addHandler(debugFileHandler)
|
|
logger.addHandler(infoFileHandler)
|
|
logger.addHandler(console)
|