You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
1 month ago
|
# -*- encoding: utf-8 -*-
|
||
|
# @Author: Jocker1212
|
||
|
# @Contact: xinyijianggo@gmail.com
|
||
|
import logging
|
||
|
|
||
|
import colorlog
|
||
|
|
||
|
|
||
|
class Logger:
|
||
|
def __init__(self, log_level=logging.DEBUG, logger_name=None):
|
||
|
self.logger = logging.getLogger(logger_name)
|
||
|
self.logger.setLevel(log_level)
|
||
|
self.logger.propagate = False
|
||
|
|
||
|
formatter = colorlog.ColoredFormatter(
|
||
|
"%(log_color)s[%(levelname)s] %(asctime)s [RapidTable] %(filename)s:%(lineno)d: %(message)s",
|
||
|
log_colors={
|
||
|
"DEBUG": "cyan",
|
||
|
"INFO": "green",
|
||
|
"WARNING": "yellow",
|
||
|
"ERROR": "red",
|
||
|
"CRITICAL": "red,bg_white",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
if not self.logger.handlers:
|
||
|
console_handler = logging.StreamHandler()
|
||
|
console_handler.setFormatter(formatter)
|
||
|
|
||
|
for handler in self.logger.handlers:
|
||
|
self.logger.removeHandler(handler)
|
||
|
|
||
|
console_handler.setLevel(log_level)
|
||
|
self.logger.addHandler(console_handler)
|
||
|
|
||
|
def get_log(self):
|
||
|
return self.logger
|