48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
import logging
|
|
import os
|
|
from utils.path_tool import get_abs_path
|
|
from datetime import datetime
|
|
|
|
LOG_ROOT = get_abs_path("logs")
|
|
|
|
os.makedirs(LOG_ROOT, exist_ok=True)
|
|
|
|
DEFAULT_LOG_FORMAT = logging.Formatter(
|
|
'%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'
|
|
)
|
|
|
|
|
|
def get_logger(
|
|
name: str = "Agent",
|
|
console_level: int = logging.INFO,
|
|
file_level: int = logging.DEBUG,
|
|
log_file=None,
|
|
) -> logging.Logger:
|
|
logger = logging.getLogger(name)
|
|
logger.setLevel(logging.DEBUG)
|
|
# 避免重复添加logger
|
|
if logger.handlers:
|
|
return logger
|
|
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(console_level)
|
|
console_handler.setFormatter(DEFAULT_LOG_FORMAT)
|
|
|
|
logger.addHandler(console_handler)
|
|
|
|
if not log_file:
|
|
log_file = os.path.join(LOG_ROOT, f"{name}_{datetime.now().strftime('%Y%m%d')}.log")
|
|
|
|
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
|
file_handler.setLevel(file_level)
|
|
file_handler.setFormatter(DEFAULT_LOG_FORMAT)
|
|
|
|
logger.addHandler(file_handler)
|
|
return logger
|
|
|
|
logger = get_logger()
|
|
|
|
if __name__ == '__main__':
|
|
logger = get_logger()
|
|
logger.info("info")
|
|
logger.error("Error") |