An error occurred while loading the file. Please try again.
logger.py 1.98 KiB
"""
Identifier:     KSC-SJ4-csst_common/logger.py
Name:           logger.py
Description:    CSST logger
Author:         Bo Zhang
Created:        2022-10-04
Modified-History:
    2022-10-04, Bo Zhang, created
    2022-10-04, Bo Zhang, added get_logger
    2022-10-07, Bo Zhang, added Numpydoc docstring
"""
import logging
def get_logger(name="CSST L1 Pipeline", filename=""):
    """
    Get a logger for CSST L1 Pipeline.
    Messages with levels >= DEBUG will be output by stream.
    Messages with levels >= INFO will be recorded by a log file.
    Parameters
    ----------
    name : str
        The logger name.
    filename : str
        The log file name.
    Returns
    -------
    logging.Logger
        The configured logger.
    References
    ----------
    For logging module: https://docs.python.org/3/library/logging.html
    For logging levels: https://docs.python.org/3/library/logging.html#logging-levels
    Examples
    --------
    >>> logger = get_logger()
    """
    # initialize logger
    logger = logging.getLogger(name=name)
    # empty handlers
    logger.handlers = []
    # set level
    logger.setLevel(logging.DEBUG)
    # logging formatter
    formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(module)s.py:%(lineno)d - %(message)s")
    # stream handler
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    stream_handler.setLevel(logging.DEBUG)
    logger.addHandler(stream_handler)
    # file handler
    if filename != "":
        file_handler = logging.FileHandler(filename=filename, encoding="utf-8")
        file_handler.setFormatter(formatter)
        file_handler.setLevel(logging.INFO)
        logger.addHandler(file_handler)
    return logger
if __name__ == "__main__":
    import os
print(os.getcwd()) logger = get_logger(filename="test_logger.log") print(type(logger), logger.name) logger.debug("Well ..") logger.info("Hello ...") logger.warning("There ...") logger.error("Good morning ...")