有人知道如何更改“kinesis data analytics for apache flink”应用程序的cloudwatch日志输出吗。?
我想改变两件事:
写入cloudwatch的json中的字段
“消息”字段的内容/格式(即每个“log.info”、“log.warn”等行的格式)
1是最重要的。
写入cloudwatch的默认格式如下所示:
{
"locationInformation": "",
"logger": "",
"message": "",
"threadName": "",
"applicationARN": "arn:aws:kinesisanalytics:eu-west-1:...",
"applicationVersionId": "23",
"messageSchemaVersion": "1",
"messageType": "INFO"
}
是否有可能更改输出,使每个cloudwatch条目变为:
{
“EventTime”: "20201224T23:59:59.999Z",
“LogLevel”: 5,
“EventSource”: "ApplicationURI/Name",
“Message”: ”foobar”
}
这里提到了使用slf4j(https://docs.aws.amazon.com/kinesisanalytics/latest/java/cloudwatch-logs-writing.html),尽管同一页上提到的格式是上述默认格式。
java项目的pom.xml文件包含aws java sdk日志。它也不包括log4j和slf4j。
<artifactSet>
<excludes>
<exclude>org.slf4j:*</exclude>
<exclude>log4j:*</exclude>
</excludes>
</artifactSet>
我看过这个:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-logging.html 但是在本地测试时,更改log4j.properties会更改日志条目的“message”字段。尽管存在于.jar文件的根目录中,但在aws上运行时似乎不会加载。即使我可以让awsjavasdk日志获取log4j.properties中的更改,更改这个文件似乎也无法更改写入cloudwatch的json字段(只有“message”格式)。
当应用程序在aws上启动时,我可以看到它打印以下内容:
-Dlog4j.configuration=file:/etc/flink/log4j-console.properties -Dlogback.configurationFile=file:/etc/flink/logback-console.xml
我希望在启动时复制它们,修改它们,并在设置指向jar的道具时包含它们。但是,当尝试在启动时从flink应用程序代码内部读取它们时,这两个文件似乎都是空的。
是否有一些相对直接的方法:
重命名/删除/添加字段到写入cloudwatch的json?
更改“消息”字段的格式?
暂无答案!
目前还没有任何答案,快来回答吧!