#独家
python3 jsonlogger 如何保存 log本地 记录时间错误 json格式?

2023-04-18 0 3,454

from pythonjsonlogger import jsonlogger

file_path = os.path.abspath(os.path.dirname(__file__)) + ‘/apps_price.log’

保存这个目录
格式如下

{"date":"2023-04-17T10:51:07.866","err_log":err}
import logging
import os
from datetime import datetime
from pythonjsonlogger import jsonlogger

# 创建 logger 实例并设置日志级别为 INFO
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# 创建文件处理器,将日志写入指定的文件路径
file_path = os.path.abspath(os.path.dirname(__file__)) + '/apps_price.log'
file_handler = logging.FileHandler(filename=file_path, mode='a')
file_handler.setLevel(logging.INFO)

# 创建自定义 JSON 格式化器
class CustomJsonFormatter(jsonlogger.JsonFormatter):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def add_fields(self, log_record, record, message_dict):
        super().add_fields(log_record, record, message_dict)
        # 将时间戳转换为 ISO 8601 格式
        log_record['date'] = datetime.utcfromtimestamp(record.created).isoformat()

json_formatter = CustomJsonFormatter('%(err_log)s')

# 设置文件处理器的格式化器为自定义 JSON 格式化器
file_handler.setFormatter(json_formatter)

# 将文件处理器添加到 logger 实例中
logger.addHandler(file_handler)

# 记录日志
err_log = "something went wrong"
logger.error({"err_log": err_log})
logger.info({"message": err_log})

你可以使用 Python 自带的 logging 模块和 pythonjsonlogger 来记录 log,并将 log 保存到本地。以下是示例代码:

import logging
import os
import json
from pythonjsonlogger import jsonlogger

# 创建 logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

# 创建文件 handler
log_file_path = os.path.abspath(os.path.dirname(__file__)) + '/apps_price.log'
file_handler = logging.FileHandler(log_file_path)

# 创建 json formatter
json_formatter = jsonlogger.JsonFormatter('%(asctime)s %(message)s')

# 添加 json formatter 到文件 handler
file_handler.setFormatter(json_formatter)

# 添加文件 handler 到 logger
logger.addHandler(file_handler)

# 记录 log
try:
    # 在这里执行你的代码
    result = 1 / 0  # 抛出除以 0 的异常
except Exception as e:
    # 记录异常信息到 log
    logger.error({'err_log': str(e)}, exc_info=True)

在这个示例中,我们创建了一个 logger,然后创建了一个文件 handler,并将其添加到 logger 中。我们还创建了一个 json formatter,并将其添加到文件 handler 中。最后,我们记录了一个异常,将其转换为 json 格式,并记录到文件中。

这个例子中的 log 格式与你所描述的格式略有不同,但是更加标准和易读。如果你希望使用你所描述的格式,只需将 json_formatter 的格式字符串改为 {“date”:”%(asctime)s”,”err_log”:%(message)s}。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 python3 jsonlogger 如何保存 log本地 记录时间错误 json格式? https://www.jkxiazai.com/1570.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务