2023-06-30 17:10:48 +08:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
"""
|
|
|
|
|
@Time : 2023/6/1 12:41
|
|
|
|
|
@Author : alexanderwu
|
|
|
|
|
@File : logs.py
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import sys
|
2023-12-05 16:30:46 +08:00
|
|
|
from datetime import datetime
|
2023-07-22 11:28:22 +08:00
|
|
|
|
2023-06-30 17:10:48 +08:00
|
|
|
from loguru import logger as _logger
|
2023-07-22 11:28:22 +08:00
|
|
|
|
2023-11-20 11:24:46 +08:00
|
|
|
from metagpt.const import METAGPT_ROOT
|
2023-06-30 17:10:48 +08:00
|
|
|
|
2024-03-27 18:01:51 +08:00
|
|
|
_print_level = "INFO"
|
2023-11-22 16:26:48 +08:00
|
|
|
|
2024-04-05 21:37:07 +08:00
|
|
|
|
2024-01-30 19:06:49 +08:00
|
|
|
def define_log_level(print_level="INFO", logfile_level="DEBUG", name: str = None):
|
2023-11-20 11:24:46 +08:00
|
|
|
"""Adjust the log level to above level"""
|
2024-03-27 18:01:51 +08:00
|
|
|
global _print_level
|
|
|
|
|
_print_level = print_level
|
|
|
|
|
|
2023-12-05 16:30:46 +08:00
|
|
|
current_date = datetime.now()
|
|
|
|
|
formatted_date = current_date.strftime("%Y%m%d")
|
2024-01-30 19:06:49 +08:00
|
|
|
log_name = f"{name}_{formatted_date}" if name else formatted_date # name a log with prefix name
|
2023-12-05 16:30:46 +08:00
|
|
|
|
2023-06-30 17:10:48 +08:00
|
|
|
_logger.remove()
|
|
|
|
|
_logger.add(sys.stderr, level=print_level)
|
2024-01-30 19:06:49 +08:00
|
|
|
_logger.add(METAGPT_ROOT / f"logs/{log_name}.txt", level=logfile_level)
|
2023-06-30 17:10:48 +08:00
|
|
|
return _logger
|
|
|
|
|
|
2023-11-22 16:26:48 +08:00
|
|
|
|
2023-06-30 17:10:48 +08:00
|
|
|
logger = define_log_level()
|
2023-12-23 22:45:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_llm_stream(msg):
|
2024-03-27 22:13:52 +08:00
|
|
|
_llm_stream_log(msg)
|
2023-12-23 22:45:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def set_llm_stream_logfunc(func):
|
|
|
|
|
global _llm_stream_log
|
|
|
|
|
_llm_stream_log = func
|
|
|
|
|
|
|
|
|
|
|
2024-03-27 22:13:52 +08:00
|
|
|
def _llm_stream_log(msg):
|
2024-04-05 21:57:37 +08:00
|
|
|
if _print_level in ["INFO"]:
|
2024-04-05 21:37:07 +08:00
|
|
|
print(msg, end="")
|