Download utils/log.py from supff/sau: direct link, hf CLI and curl.
- Browser
- Download file 1.91 kB
-
https://huggingface.co/spaces/supff/sau/resolve/main/utils/log.py
- Command line
-
hf download hf://spaces/supff/sau/utils/log.py
-
curl -L -o log.py https://huggingface.co/spaces/supff/sau/resolve/main/utils/log.py
1.91 kB
| from pathlib import Path | |
| from sys import stdout | |
| from loguru import logger | |
| from conf import BASE_DIR | |
| def log_formatter(record: dict) -> str: | |
| """ | |
| Formatter for log records. | |
| :param dict record: Log object containing log metadata & message. | |
| :returns: str | |
| """ | |
| colors = { | |
| "TRACE": "#cfe2f3", | |
| "INFO": "#9cbfdd", | |
| "DEBUG": "#8598ea", | |
| "WARNING": "#dcad5a", | |
| "SUCCESS": "#3dd08d", | |
| "ERROR": "#ae2c2c" | |
| } | |
| color = colors.get(record["level"].name, "#b3cfe7") | |
| return f"<fg #70acde>{{time:YYYY-MM-DD HH:mm:ss}}</fg #70acde> | <fg {color}>{{level}}</fg {color}>: <light-white>{{message}}</light-white>\n" | |
| def create_logger(log_name: str, file_path: str): | |
| """ | |
| Create custom logger for different business modules. | |
| :param str log_name: name of log | |
| :param str file_path: Optional path to log file | |
| :returns: Configured logger | |
| """ | |
| def filter_record(record): | |
| return record["extra"].get("business_name") == log_name | |
| Path(BASE_DIR / file_path).parent.mkdir(exist_ok=True) | |
| logger.add(Path(BASE_DIR / file_path), filter=filter_record, level="INFO", rotation="10 MB", retention="10 days", backtrace=True, diagnose=True) | |
| return logger.bind(business_name=log_name) | |
| # Remove all existing handlers | |
| logger.remove() | |
| # Add a standard console handler | |
| logger.add(stdout, colorize=True, format=log_formatter) | |
| douyin_logger = create_logger('douyin', 'logs/douyin.log') | |
| tencent_logger = create_logger('tencent', 'logs/tencent.log') | |
| xhs_logger = create_logger('xhs', 'logs/xhs.log') | |
| tiktok_logger = create_logger('tiktok', 'logs/tiktok.log') | |
| bilibili_logger = create_logger('bilibili', 'logs/bilibili.log') | |
| kuaishou_logger = create_logger('kuaishou', 'logs/kuaishou.log') | |
| baijiahao_logger = create_logger('baijiahao', 'logs/baijiahao.log') | |
| xiaohongshu_logger = create_logger('xiaohongshu', 'logs/xiaohongshu.log') | |