Source code for promptbind.utils.logging_utils

import os
from accelerate.logging import get_logger
import logging

[docs] class Logger: def __init__(self, accelerator, log_path): if accelerator is None: self.logger = logging.getLogger('MainLogger') self.logger.setLevel(logging.INFO) else: self.logger = get_logger('Main') # Make one log on every process with the configuration for debugging. logging.basicConfig( format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%m/%d/%Y %H:%M:%S", level=logging.INFO, ) handler = logging.FileHandler(log_path) handler.setFormatter(logging.Formatter('%(message)s', "")) if accelerator is None: self.logger.addHandler(handler) else: self.logger.logger.addHandler(handler) self.logger.info(accelerator.state, main_process_only=False) self.logger.info(f'Working directory is {os.getcwd()}')
[docs] def log_stats(self, stats, epoch, args, prefix=''): msg_start = f'[{prefix}] Epoch {epoch} out of {args.total_epochs}' + ' | ' dict_msg = ' | '.join([f'{k.capitalize()} --> {v:.5f}' for k, v in stats.items()]) + ' | ' msg = msg_start + dict_msg self.log_message(msg)
[docs] def log_message(self, msg): self.logger.info(msg)