42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import logging
|
|
|
|
|
|
def makeLogger(name: str):
|
|
|
|
# create logger formats for file and terminal
|
|
file_formatter = logging.Formatter(
|
|
"[ %(levelname)s ] ~ %(asctime)s ~ %(module)s.%(funcName)s: %(message)s")
|
|
console_formatter = logging.Formatter(
|
|
"[ %(levelname)s ] in %(module)s.%(funcName)s: %(message)s")
|
|
|
|
# create logging file if loglevel is debug
|
|
file_handler = logging.FileHandler(f"gridtools_log.log", mode="w")
|
|
file_handler.setLevel(logging.WARN)
|
|
file_handler.setFormatter(file_formatter)
|
|
|
|
# create stream handler for terminal output
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setFormatter(console_formatter)
|
|
console_handler.setLevel(logging.INFO)
|
|
|
|
# create script specific logger
|
|
logger = logging.getLogger(name)
|
|
logger.addHandler(file_handler)
|
|
logger.addHandler(console_handler)
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
return logger
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# initiate logger
|
|
mylogger = makeLogger(__name__)
|
|
|
|
# test logger levels
|
|
mylogger.debug("This is for debugging!")
|
|
mylogger.info("This is an info.")
|
|
mylogger.warning("This is a warning.")
|
|
mylogger.error("This is an error.")
|
|
mylogger.critical("This is a critical error!")
|