Source code for adler.utilities.adler_logging

import logging
import os
from datetime import datetime


[docs] def setup_adler_logging( log_location, log_format="%(asctime)s %(name)-12s %(levelname)-8s %(message)s ", log_file_info="adler.log", log_file_error="adler.err", ): """Sets up two logs for Adler: info, which logs everything, and error, which logs warnings and errors. Parameters ----------- log_location : string Filepath to directory in which to save logs. log_format : string, optional Format for log filename. Default = "%(asctime)s %(name)-12s %(levelname)-8s %(message)s " log_file_info : string, optional Name with which to save info log. Default = "adler.log" log_file_error : string, optional Name with which to save error log. Default = "adler.err" Returns ---------- log : logging object Log object. """ log = logging.getLogger("adler") # Prevent duplicate handlers if called more than once if log.handlers: return log log.setLevel(logging.INFO) log_formatter = logging.Formatter(log_format) dstr = datetime.now().strftime("%Y-%m-%d-%H-%M-%S") cpid = os.getpid() log_file_info = os.path.join(log_location, f"{dstr}-p{cpid}-{log_file_info}") log_file_error = os.path.join(log_location, f"{dstr}-p{cpid}-{log_file_error}") file_handler_info = logging.FileHandler(log_file_info, mode="w") file_handler_info.setFormatter(log_formatter) file_handler_info.setLevel(logging.INFO) file_handler_error = logging.FileHandler(log_file_error, mode="w") file_handler_error.setFormatter(log_formatter) file_handler_error.setLevel(logging.WARNING) log.addHandler(file_handler_info) log.addHandler(file_handler_error) return log