我正在使用AWS cloudwatch日志并配置我的应用程序以压缩json格式编写日志,其中sink是滚动文件。以下是来自应用程序的示例日志。
print_r($result);
现在我面对云观察日志的问题是它没有从这个紧凑的json格式化日志中获取时间戳,因为AWS cloudwatch日志期望第一个参数是时间戳,后跟空格,然后是message.So上面的日志需要采用以下格式才能通过AWS云观察日志获取
{"@t":"2017-12-21T10:00:51.5955080Z","@mt":"Error {@args}","@l":"Error","args":["args","31"]}
因此,要使我的紧凑型json日志由AWS cloudwatch日志处理,我需要明确提取时间戳并将其放在每个日志之前?或者AWS不提供紧凑的json格式日志?或者其他任何解决方法
我已经搜索过这个,但无法获得任何有用的信息。非常感谢。
答案 0 :(得分:0)
如果我们可以更改 JSON,我们就可以让它工作。这不是原始问题的解决方案。我把它贴出来希望它可能有所帮助。
这是日志行。这里最重要的是时间之后和"request”
之前的空间。
{"time":"11/Jan/2021:17:26:03 +0100", "request_addr":"78.82.196.176","request_length":"920","request_method":"POST","request_host":"aaa.elb.amazonaws.com","request_url":"http://aaa.elb.amazonaws.com/admin/netCallback.php","geoip_country_code":"SE","response_status": "200","response_sent":"257","response_time":"0.651","upstream_response_time":"0.652","upstream_connect_time":"0.000","http_referrer":"http://aaa.elb.amazonaws.com/admin/index.php","http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
在这种情况下,日期时间格式如下。
datetime_format = {"time":"%d/%b/%Y:%H:%M:%S %z",