loguru基本使用方法请参考:https://blog.csdn.net/weixin_35757704/article/details/123047652
将日志序列化的方法是:
from loguru import loggerlogger.add("my_log_debug.log", level="DEBUG",format="{time:YYYY-MM-DD HH:mm:ss.SSS} {level} {message}", enqueue=True, serialize=True)
即可将所有使用logger
写入的日志转变为json格式,方便进行解析
完整示例
from loguru import logger
import jsondef generate_log():logger.add("my_log_debug.log", level="DEBUG",format="{time:YYYY-MM-DD HH:mm:ss.SSS} {level} {message}", enqueue=True, serialize=True)logger.debug("debug_a")logger.debug("debug_b")logger.info("info_a")logger.success("success_a")logger.error("error_a")def analyze_file(file_name):with open(file_name, 'r', encoding="utf-8") as fp:for line in fp:json_info = json.loads(line)print({"TIME": json_info['record']["time"]['repr'],"MESSAGE": json_info['record']['message'],})if __name__ == '__main__':generate_log()analyze_file("my_log_debug.log")
结果:
2024-02-23 10:38:52.389 | DEBUG | __main__:generate_log:16 - debug_a
2024-02-23 10:38:52.391 | DEBUG | __main__:generate_log:17 - debug_b
2024-02-23 10:38:52.392 | INFO | __main__:generate_log:18 - info_a
2024-02-23 10:38:52.393 | SUCCESS | __main__:generate_log:19 - success_a
2024-02-23 10:38:52.393 | ERROR | __main__:generate_log:20 - error_a
{'TIME': '2024-02-23 10:38:52.389900+08:00', 'MESSAGE': 'debug_a'}
{'TIME': '2024-02-23 10:38:52.391405+08:00', 'MESSAGE': 'debug_b'}
{'TIME': '2024-02-23 10:38:52.392410+08:00', 'MESSAGE': 'info_a'}
{'TIME': '2024-02-23 10:38:52.393411+08:00', 'MESSAGE': 'success_a'}
{'TIME': '2024-02-23 10:38:52.393411+08:00', 'MESSAGE': 'error_a'}