May*_*bhi 4 java logging log4j aws-lambda
当使用Java编写Lambda函数时,AWS lambda当前支持两种记录方式。
我想知道使用一种日志记录方案相对于其他日志记录方案是否有任何优势。
谢谢!
我从Aws Lambda Java记录和在网上搜索了解到的是
Log4J
LambdaLogger
希望对您有所帮助!
优点: 详细的报告日志
\n缺点:只有一层日志。比 Log4J 更少可配置
\n优点: \n用于配置日志级别的外观库(信息、调试、错误...)。
\n缺点:无法将详细报告日志(请求 ID)添加到函数的日志中
\n您可以通过库两全其美aws-lambda-java-log4j2\n https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html
在你的 src/main/resources/log4j2.xml文件中
<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>\nRun Code Online (Sandbox Code Playgroud)\n在你的build.gradle
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}\nRun 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