ForcePilot/src/utils/logging_config.py
Wenjie Zhang 0780638152 rename
2024-09-14 02:45:35 +08:00

45 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import logging
import os
from datetime import datetime
DATETIME = datetime.now().strftime('%Y-%m-%d-%H%M%S')
# DATETIME = "debug" # 为了方便,调试的时候输出到 debug.log 文件
LOG_FILE = f'saves/log/project-{DATETIME}.log'
def setup_logger(name, level=logging.DEBUG, console=False):
os.makedirs("saves/log", exist_ok=True)
"""Function to setup logger with the given name and log file."""
logger = logging.getLogger(name)
logger.setLevel(level)
# 清除已有的 Handler防止重复添加
if logger.hasHandlers():
logger.handlers.clear()
# File handler for logging to a file
file_handler = logging.FileHandler(LOG_FILE)
file_handler.setLevel(level)
# Formatter for the logs
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# Console handler for logging to the console (optional)
if console:
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger
# Setup the root logger
logger = setup_logger('Yuxi')
# If you want to disable logging from external libraries
# logging.getLogger('some_external_library').setLevel(logging.CRITICAL)