Last commit not found
from loguru import logger | |
import logging | |
import sys | |
import os | |
def chat_log_filter(record): | |
return "chat_msg" in record["extra"] | |
def not_chat_log_filter(record): | |
return "chat_msg" not in record["extra"] | |
def formatter_with_clip(record): | |
# Note this function returns the string to be formatted, not the actual message to be logged | |
# record["extra"]["serialized"] = "555555" | |
max_len = 12 | |
record['function_x'] = record['function'].center(max_len) | |
if len(record['function_x']) > max_len: | |
record['function_x'] = ".." + record['function_x'][-(max_len-2):] | |
record['line_x'] = str(record['line']).ljust(3) | |
return '<green>{time:HH:mm}</green> | <cyan>{function_x}</cyan>:<cyan>{line_x}</cyan> | <level>{message}</level>\n' | |
def setup_logging(PATH_LOGGING): | |
admin_log_path = os.path.join(PATH_LOGGING, "admin") | |
os.makedirs(admin_log_path, exist_ok=True) | |
sensitive_log_path = os.path.join(admin_log_path, "chat_secrets.log") | |
regular_log_path = os.path.join(admin_log_path, "console_log.log") | |
logger.remove() | |
logger.configure( | |
levels=[dict(name="WARNING", color="<g>")], | |
) | |
logger.add( | |
sys.stderr, | |
format=formatter_with_clip, | |
# format='<green>{time:HH:mm}</green> | <cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>', | |
filter=(lambda record: not chat_log_filter(record)), | |
colorize=True, | |
enqueue=True | |
) | |
logger.add( | |
sensitive_log_path, | |
format='<green>{time:MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>', | |
rotation="10 MB", | |
filter=chat_log_filter, | |
enqueue=True, | |
) | |
logger.add( | |
regular_log_path, | |
format='<green>{time:MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>', | |
rotation="10 MB", | |
filter=not_chat_log_filter, | |
enqueue=True, | |
) | |
logging.getLogger("httpx").setLevel(logging.WARNING) | |
logger.warning(f"所有对话记录将自动保存在本地目录{sensitive_log_path}, 请注意自我隐私保护哦!") | |
# logger.bind(chat_msg=True).info("This message is logged to the file!") | |
# logger.debug(f"debug message") | |
# logger.info(f"info message") | |
# logger.success(f"success message") | |
# logger.error(f"error message") | |
# logger.add("special.log", filter=lambda record: "special" in record["extra"]) | |
# logger.debug("This message is not logged to the file") | |