在AWS Lambda中记录数据的建议

May*_*bhi 4 java logging log4j aws-lambda

当使用Java编写Lambda函数时,AWS lambda当前支持两种记录方式。

  • log4j
  • LambdaLogger

我想知道使用一种日志记录方案相对于其他日志记录方案是否有任何优势。

谢谢!

use*_*759 5

我从Aws Lambda Java记录和在网上搜索了解到的是

  • Log4J

    • 优点:您可以自定义日志(使用log4j.properties)。
    • 缺点:随着对项目的依赖性增加,它会增加jar / zip的大小
  • LambdaLogger

    • 优点:由于已嵌入依赖项,因此可以节省内存
    • 缺点:无法自定义

希望对您有所帮助!


Ray*_*non 5

Lambda记录器

\n

优点: 详细的报告日志

\n
    \n
  • RequestId \xe2\x80\x93 调用的唯一请求 ID。
  • \n
  • 持续时间 \xe2\x80\x93 函数的处理程序方法处理事件所花费的时间。
  • \n
  • 计费持续时间 \xe2\x80\x93 为调用计费的时间量。\n\xe2\x80\x93 用于跟踪的请求(XRAY TraceId、SegmentId ...)。
  • \n
  • 更多的 ...
  • \n
\n

缺点:只有一层日志。比 Log4J 更少可配置

\n

Log4J

\n

优点: \n用于配置日志级别的外观库(信息、调试、错误...)。

\n

缺点:无法将详细报告日志(请求 ID)添加到函数的日志中

\n

两全其美

\n

您可以通过库两全其美aws-lambda-java-log4j2\n https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html

\n

运行 Log4j 和 LambdaLogger 的配置

\n

在你的 src/main/resources/log4j2.xml文件中

\n
<Configuration status="WARN">\n  <Appenders>\n    <Lambda name="Lambda">\n      <PatternLayout>\n          <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1} - %m%n</pattern>\n      </PatternLayout>\n    </Lambda>\n  </Appenders>\n  <Loggers>\n    <Root level="INFO">\n      <AppenderRef ref="Lambda"/>\n    </Root>\n    <Logger name="software.amazon.awssdk" level="WARN" />\n    <Logger name="software.amazon.awssdk.request" level="DEBUG" />\n  </Loggers>\n</Configuration>\n
Run Code Online (Sandbox Code Playgroud)\n

在你的build.gradle

\n
dependencies {\n    // ...\n    runtimeOnly \'org.apache.logging.log4j:log4j-slf4j18-impl:2.13.0\'\n    runtimeOnly \'com.amazonaws:aws-lambda-java-log4j2:1.2.0\'\n    testImplementation \'org.junit.jupiter:junit-jupiter-api:5.6.0\'\n    testRuntimeOnly \'org.junit.jupiter:junit-jupiter-engine:5.6.0\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n


小智 3

我认为保持简单。

1.假设您在maven中有一个应用程序项目,其中将有多个maven模块。每次调用其他模块的实现时,您不会传递 context.getLogger() 或上下文参数。

2.如果您有一个没有模块和多个类的处理函数。在这种情况下,您可以启动 AWS Lambda 处理程序函数代码并获取 context.getLogger() 以获取 Lambda 记录器。

欲了解更多信息:http://docs.aws.amazon.com/lambda/latest/dg/programming-model-v2.html