Source code for pyabsa.utils.logger.logger

# -*- coding: utf-8 -*-
# file: logger.py
# time: 2021/6/2 0002

# Copyright from https://www.cnblogs.com/c-x-a/p/9072234.html

import logging
import os
import sys
import time

[docs] today = time.strftime("%Y%m%d %H%M%S", time.localtime(time.time()))
[docs] def get_logger(log_path, log_name="", log_type="training_log"): """ Create a logger object with file handler and console handler. Args: log_path (str): The root directory of the log files. log_name (str): The name of the logger. log_type (str): The type of the logger. Returns: logger: A configured logger object. """ if not log_path: log_dir = os.path.join(log_path, "logs") else: log_dir = os.path.join(".", "logs") full_path = os.path.join(log_dir, log_name + "_" + today) if not os.path.exists(full_path): os.makedirs(full_path) log_path = os.path.join(full_path, "{}.log".format(log_type)) logger = logging.getLogger(log_name) if not logger.handlers: # Specify logger output format. formatter = logging.Formatter("%(asctime)s %(levelname)s: %(message)s") # File handler. file_handler = logging.FileHandler(log_path, encoding="utf8") file_handler.setFormatter(formatter) file_handler.setLevel(logging.INFO) # Console handler. console_handler = logging.StreamHandler(sys.stdout) console_handler.formatter = formatter console_handler.setLevel(logging.INFO) # Add handlers to logger. logger.addHandler(file_handler) logger.addHandler(console_handler) # Set logger output level. logger.setLevel(logging.INFO) return logger