khoa-tran-hcmut's picture
add README + user session + log UI
4e17efc
import logging
import os
class FlushFileHandler(logging.FileHandler):
def emit(self, record):
super().emit(record)
self.flush()
def setup_logger(name="app", log_file="logs/app.log"):
# Tạo thư mục logs nếu chưa có
os.makedirs(os.path.dirname(log_file), exist_ok=True)
logger = logging.getLogger(name)
logger.propagate = False
logger.setLevel(logging.INFO)
if logger.handlers:
return logger
handler = FlushFileHandler(
log_file,
mode="a",
encoding="utf-8"
)
formatter = logging.Formatter(
"[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s",
"%H:%M:%S"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger
def reset_logger(logger_name):
logger = logging.getLogger(logger_name)
for h in logger.handlers[:]:
h.close()
logger.removeHandler(h)
print(f"Logger '{logger_name}' has been reset.")