Source code for ariane.lib.utils.logging

from datetime import datetime
import json
from logging import FileHandler, Formatter, StreamHandler, getLogger, INFO
import os
from sys import stdout


FOLDER = "logs"


[docs] class LoggerMixin: """Mixin class for adding a logger instance.""" def __init__(self, name=None): self.logger = getLogger(name) self.logger.setLevel(INFO) os.makedirs(FOLDER, exist_ok=True) # create log directory, if not existing filename = f"{FOLDER}/{datetime.now().isoformat('_', timespec='seconds')}" \ "_ariane" + (f"_{name}" if name is not None else "") + ".log" handler_file = FileHandler(filename) handler_file.setFormatter( Formatter(fmt='%(asctime)s %(name)-8s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')) self.logger.addHandler(handler_file) handler_terminal = StreamHandler(stdout) handler_terminal.setFormatter(Formatter(fmt='[%(name)s] %(message)s')) self.logger.addHandler(handler_terminal)
def save_dict(d, filename): """Save dictionary to a file.""" with open(f"{FOLDER}/{filename}", 'w') as fp: json.dump(d, fp)