Core: datetime-tag log files and delete old ones
This commit is contained in:
parent
67128ece38
commit
5ed8c2e1c0
16
Utils.py
16
Utils.py
|
@ -452,6 +452,7 @@ loglevel_mapping = {'error': logging.ERROR, 'info': logging.INFO, 'warning': log
|
||||||
def init_logging(name: str, loglevel: typing.Union[str, int] = logging.INFO, write_mode: str = "w",
|
def init_logging(name: str, loglevel: typing.Union[str, int] = logging.INFO, write_mode: str = "w",
|
||||||
log_format: str = "[%(name)s at %(asctime)s]: %(message)s",
|
log_format: str = "[%(name)s at %(asctime)s]: %(message)s",
|
||||||
exception_logger: typing.Optional[str] = None):
|
exception_logger: typing.Optional[str] = None):
|
||||||
|
import datetime
|
||||||
loglevel: int = loglevel_mapping.get(loglevel, loglevel)
|
loglevel: int = loglevel_mapping.get(loglevel, loglevel)
|
||||||
log_folder = user_path("logs")
|
log_folder = user_path("logs")
|
||||||
os.makedirs(log_folder, exist_ok=True)
|
os.makedirs(log_folder, exist_ok=True)
|
||||||
|
@ -460,6 +461,8 @@ def init_logging(name: str, loglevel: typing.Union[str, int] = logging.INFO, wri
|
||||||
root_logger.removeHandler(handler)
|
root_logger.removeHandler(handler)
|
||||||
handler.close()
|
handler.close()
|
||||||
root_logger.setLevel(loglevel)
|
root_logger.setLevel(loglevel)
|
||||||
|
if "a" not in write_mode:
|
||||||
|
name += f"_{datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')}"
|
||||||
file_handler = logging.FileHandler(
|
file_handler = logging.FileHandler(
|
||||||
os.path.join(log_folder, f"{name}.txt"),
|
os.path.join(log_folder, f"{name}.txt"),
|
||||||
write_mode,
|
write_mode,
|
||||||
|
@ -487,6 +490,19 @@ def init_logging(name: str, loglevel: typing.Union[str, int] = logging.INFO, wri
|
||||||
|
|
||||||
sys.excepthook = handle_exception
|
sys.excepthook = handle_exception
|
||||||
|
|
||||||
|
def _cleanup():
|
||||||
|
for file in os.scandir(log_folder):
|
||||||
|
if file.name.endswith(".txt"):
|
||||||
|
last_change = datetime.datetime.fromtimestamp(file.stat().st_mtime)
|
||||||
|
if datetime.datetime.now() - last_change > datetime.timedelta(days=7):
|
||||||
|
try:
|
||||||
|
os.unlink(file.path)
|
||||||
|
except Exception as e:
|
||||||
|
logging.exception(e)
|
||||||
|
else:
|
||||||
|
logging.info(f"Deleted old logfile {file.path}")
|
||||||
|
import threading
|
||||||
|
threading.Thread(target=_cleanup, name="LogCleaner").start()
|
||||||
logging.info(f"Archipelago ({__version__}) logging initialized.")
|
logging.info(f"Archipelago ({__version__}) logging initialized.")
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue