【问题标题】:Remove unneccessary information from log file从日志文件中删除不必要的信息
【发布时间】:2018-10-07 06:34:41
【问题描述】:

我的 Python 脚本使用 log.startLogging(sys.stdout)log.startLogging(DailyLogFile.fromFullPath('sms.log'))。它做得很好。 但它有点笨重和沉闷。所以我不想将它解析为带有特定标签且没有不必要信息的 XML所以它对人眼来说更美观

已发送内容和发送给谁的信息:电话号码 (29999999)文本 (text1)用户 ID (666)事件 ID (1)

2018-04-26 11:42:25+0300 [-] ('29999999', 'text1', '666', '1')
2018-04-26 11:42:25+0300 [SMSManagementProtocol,client] TX WAMP: [7,"psevent:send_sms",{"sms_txt":"text1","id_nr":"666","key":"1","phone_nr":"29999999"},null]
2018-04-26 11:42:25+0300 [-] ('29999999', 'text2', '666', '2')
2018-04-26 11:42:25+0300 [SMSManagementProtocol,client] TX WAMP: [7,"psevent:send_sms",{"sms_txt":"text2","id_nr":"666","key":"2","phone_nr":"29999999"},null]
2018-04-26 11:42:25+0300 [-] ('29999999', 'text3', '666', '3')
2018-04-26 11:42:25+0300 [SMSManagementProtocol,client] TX WAMP: [7,"psevent:send_sms",{"sms_txt":"text3","id_nr":"666","key":"3","phone_nr":"29999999"},null]

EVENT(送达或发生错误时响应状态):

2018-04-26 11:43:23+0300 [-] EVENT: http://test.com/publicsubscribeon_sms_delivered_OK KEY: 1
2018-04-26 11:43:23+0300 [SMSManagementProtocol,client] RX WAMP: [8, "http://test.com/publicsubscribeon_sms_delivered_OK", "3"]
2018-04-26 11:43:23+0300 [-] EVENT: http://test.com/publicsubscribeon_sms_delivered_OK KEY: 3
2018-04-26 11:43:23+0300 [SMSManagementProtocol,client] RX WAMP: [8, "http://test.com/publicsubscribeon_sms_delivered_OK", "2"]
2018-04-26 11:43:23+0300 [-] EVENT: http://test.com/publicsubscribeon_sms_delivered_OK KEY: 2

有没有办法删除不必要的日志信息?我需要的只是数据。

有什么建议吗?

【问题讨论】:

  • 什么是“不必要的”?什么是“数据”?
  • 不必要的,例如:'[SMSManagementProtocol,client] TX WAMP: [7,"psevent:send_sms",' 和:'[8, "test.com/publicsubscribeon_sms_delivered_OK",' 我只需要 "KEY : 1"/ "key 2" 等等。因为它是信息 - 正是事件成功了。这就是我需要的所有信息。(更多信息 = 更多存储空间,这不好)。

标签: xml logging twisted


【解决方案1】:

您可以通过编写自定义日志格式化程序来做到这一点。

您将获得更多详情Here

检查下面我在我的应用程序中用于记录的代码。

log_path = "logs"
log_file = "log"
rootlogger = logging.getLogger('')
fmt = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s : %(message)s')
sh = logging.StreamHandler()
sh.setFormatter(fmt)
rootlogger.addHandler(sh)
logsize = 102400
logbackupcount = 100
rfh = logging.handlers.RotatingFileHandler(log_path+"/"+log_file, maxBytes=logsize, backupCount=logbackupcount)
rfh.setFormatter(fmt)
rootlogger.addHandler(rfh)

按照下面的代码 sn-p 写入日志。

import logging
log = logging.getLogger(<logger_name>) 
log.info("information")
log.error("Error message")

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 2019-08-25
    • 1970-01-01
    • 2020-09-28
    • 2015-10-14
    • 2022-11-17
    • 2018-01-03
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多