更改“kinesis data analytics for apache flink”应用程序的cloudwatch日志输出

6ss1mwsb  于 2021-06-21  发布在  Flink
关注(0)|答案(0)|浏览(227)

有人知道如何更改“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?
更改“消息”字段的格式?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题