2024-09-13 16:58:34 +08:00

81 lines
2.7 KiB
Python

import time
import PytorchBoot.namespace as namespace
from PytorchBoot.status import status_manager
class Log:
MAX_TITLE_LENGTH:int = 7
TYPE_COLOR_MAP = {
namespace.LogType.INFO: "\033[94m",
namespace.LogType.ERROR: "\033[91m",
namespace.LogType.WARNING: "\033[93m",
namespace.LogType.SUCCESS: "\033[92m",
namespace.LogType.DEBUG: "\033[95m",
namespace.LogType.TERMINATE: "\033[96m"
}
def get_time():
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
def blue(message):
# blue
print(f"\033[94m{message}\033[0m")
def red(message):
# red
print(f"\033[91m{message}\033[0m")
def yellow(message):
# yellow
print(f"\033[93m{message}\033[0m")
def green(message):
# green
print(f"\033[92m{message}\033[0m")
def log(message, log_type: str):
time_str = Log.get_time()
space = ""
if len(log_type) < Log.MAX_TITLE_LENGTH:
space = " " * (Log.MAX_TITLE_LENGTH - len(log_type))
print (f"\033[1m\033[4m({time_str})\033[0m \033[1m{Log.TYPE_COLOR_MAP[log_type]}[{log_type.capitalize()}]\033[0m{space} {Log.TYPE_COLOR_MAP[log_type]}{message}\033[0m")
status_manager.add_log(time_str, log_type, message)
def bold(message):
print(f"\033[1m{message}\033[0m")
def underline(message):
print(f"\033[4m{message}\033[0m")
def info(message):
Log.log(message, namespace.LogType.INFO)
def error(message, terminate=False):
Log.log(message, namespace.LogType.ERROR)
if terminate:
Log.terminate("Application Terminated.")
def warning(message):
Log.log(message, namespace.LogType.WARNING)
def success(message):
Log.log(message, namespace.LogType.SUCCESS)
def debug(message):
Log.log(message, namespace.LogType.DEBUG)
def terminate(message):
Log.log(message, namespace.LogType.TERMINATE)
exit(1)
if __name__ == "__main__":
Log.info("This is a info message")
Log.error("This is a error message")
Log.warning("This is a warning message")
Log.success("This is a success message")
Log.debug("This is a debug message")
Log.blue("This is a blue message")
Log.red("This is a red message")
Log.yellow("This is a yellow message")
Log.green("This is a green message")
Log.bold("This is a bold message")
Log.underline("This is a underline message")
Log.error("This is a terminate message", True)