mirror of
https://github.com/simon987/hexlib.git
synced 2025-12-20 01:45:56 +00:00
add Web helper & logger
This commit is contained in:
51
hexlib/log.py
Normal file
51
hexlib/log.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from logging import StreamHandler
|
||||
|
||||
DATE_FMT = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
|
||||
class ColorFormatter(logging.Formatter):
|
||||
|
||||
def __init__(self, fmt):
|
||||
super().__init__()
|
||||
|
||||
grey = "\x1b[38;21m"
|
||||
yellow = "\x1b[33;21m"
|
||||
red = "\x1b[31;21m"
|
||||
bold_red = "\x1b[31;1m"
|
||||
reset = "\x1b[0m"
|
||||
|
||||
self.formats = {
|
||||
logging.DEBUG: logging.Formatter(grey + fmt + reset, datefmt=DATE_FMT),
|
||||
logging.INFO: logging.Formatter(grey + fmt + reset, datefmt=DATE_FMT),
|
||||
logging.WARNING: logging.Formatter(yellow + fmt + reset, datefmt=DATE_FMT),
|
||||
logging.ERROR: logging.Formatter(red + fmt + reset, datefmt=DATE_FMT),
|
||||
logging.CRITICAL: logging.Formatter(bold_red + fmt + reset, datefmt=DATE_FMT)
|
||||
}
|
||||
|
||||
def format(self, record):
|
||||
return self.formats[record.levelno].format(record)
|
||||
|
||||
|
||||
stdout_logger = logging.getLogger("default")
|
||||
|
||||
if os.environ.get("LOG_LEVEL", "debug") == "debug":
|
||||
stdout_logger.setLevel(logging.DEBUG)
|
||||
|
||||
for h in stdout_logger.handlers:
|
||||
stdout_logger.removeHandler(h)
|
||||
|
||||
handler = StreamHandler(sys.stdout)
|
||||
if os.environ.get("LOG_THREAD_NAME", "0") == "1":
|
||||
fmt = "%(asctime)s %(levelname)-5s>%(threadName)s %(message)s"
|
||||
else:
|
||||
fmt = "%(asctime)s %(levelname)-5s>%(message)s"
|
||||
|
||||
if os.environ.get("LOG_COLORS", "1") == "1":
|
||||
handler.formatter = ColorFormatter(fmt)
|
||||
else:
|
||||
handler.formatter = logging.Formatter(fmt, datefmt='%Y-%m-%d %H:%M:%S')
|
||||
stdout_logger.addHandler(handler)
|
||||
logger = stdout_logger
|
||||
Reference in New Issue
Block a user