MetaGPT
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3"""
4@Time : 2023/6/1 12:41
5@Author : alexanderwu
6@File : logs.py
7"""
8
9import sys10from datetime import datetime11
12from loguru import logger as _logger13
14from metagpt.const import METAGPT_ROOT15
16_print_level = "INFO"17
18
19def define_log_level(print_level="INFO", logfile_level="DEBUG", name: str = None):20"""Adjust the log level to above level"""21global _print_level22_print_level = print_level23
24current_date = datetime.now()25formatted_date = current_date.strftime("%Y%m%d")26log_name = f"{name}_{formatted_date}" if name else formatted_date # name a log with prefix name27
28_logger.remove()29_logger.add(sys.stderr, level=print_level)30_logger.add(METAGPT_ROOT / f"logs/{log_name}.txt", level=logfile_level)31return _logger32
33
34logger = define_log_level()35
36
37def log_llm_stream(msg):38_llm_stream_log(msg)39
40
41def set_llm_stream_logfunc(func):42global _llm_stream_log43_llm_stream_log = func44
45
46def _llm_stream_log(msg):47if _print_level in ["INFO"]:48print(msg, end="")49