Stock_Embedder / Models /logger_config.py
Huy0502's picture
Create Models/logger_config.py
d73e6af verified
import logging
import os
def get_logger(name, log_file='logs.log', level=logging.INFO, mode='a'):
"""
Hàm tạo logger
:param name: Tên của logger
:param log_file: Tên file log (mặc định là 'logs.log')
:param level: Cấp độ log (mặc định là logging.INFO)
:param mode: Chế độ ghi file ('a' để thêm log, 'w' để ghi đè, mặc định là 'a')
"""
# Tạo thư mục chứa log nếu chưa tồn tại
log_dir = os.path.dirname(p=log_file)
if log_dir and not os.path.exists(path=log_dir):
os.makedirs(log_dir, exist_ok=True)
# Tạo logger
logger = logging.getLogger(name)
logger.setLevel(level=level)
# Kiểm tra nếu logger đã có handler, tránh thêm trùng lặp
if not logger.handlers:
# Tạo StreamHandler để log ra console
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
# Tạo FileHandler để log vào file
file_handler = logging.FileHandler(log_file, mode=mode, encoding='UTF-8')
file_handler.setLevel(logging.INFO)
# Tạo định dạng log
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Thêm các handler vào logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
return logger
if __name__ == '__main__':
# Lấy logger từ file logger_config.py
logger = get_logger(__name__)
# Sử dụng logger
logger.info("This is an info message.")
logger.error("This is an error message.")