java - 使用 Log4J appender 在 AWS Cloudwatch 中存储应用程序日志
问题描述
我正在尝试将应用程序级日志存储在来自 Java Web 应用程序的 AWS Cloudwatch 日志中。
我的示例 Java Web 应用程序已经具有 Log4J 实现。因此,无需编写 AWS SDK 代码,我只想将日志推送到 Cloudwatch。我刚刚遇到了 Log4J cloudwatch appender。
关注此链接但不确定如何配置 AWS 身份验证(访问/密钥、区域) https://dzone.com/articles/announcing-log4j-aws-appenders
log4j.properties
log4j.rootLogger=WARN, console
log4j.logger.org.apache.http=ERROR
log4j.logger.com.amazonaws=ERROR
log4j.logger.com.mkyong=ERROR
log4j.additivity.com.mkyong=true
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
log4j.appender.cloudwatch=com.kdgregory.log4j.aws.CloudWatchAppender
log4j.appender.cloudwatch.layout=org.apache.log4j.PatternLayout
log4j.appender.cloudwatch.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
log4j.appender.cloudwatch.logGroup=ExampleCloudwatchLog
log4j.appender.cloudwatch.logStream={startupTimestamp}-{sequence}
log4j.appender.cloudwatch.batchDelay=2500
log4j.appender.cloudwatch.rotationMode=daily
看起来凭据不是从我使用配置的本地计算机读取的aws configure
。
注意:应用程序也将部署在 AWS 或非 AWS 环境中。所以也不确定是否设置 AWS IAM 角色。
任何人都可以帮助我传递 AWS 的凭据吗?
解决方案
感谢您宝贵的重播@kdgregory。
故障排除指南对我帮助很大。
使用以下启用调试,发现依赖关系未解决。
log4j.debug=true
最后,我通过在 pom.xml 中添加 AWS ADK 日志依赖项来实现。工作正常。
<!-- 1/2 For AWS Cloudwatch Appender -->
<dependency>
<groupId>com.kdgregory.log4j</groupId>
<artifactId>aws-appenders</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 2/2 For AWS Cloudwatch Appender -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-logs</artifactId>
<version>1.11.130</version>
</dependency>
谢谢,
推荐阅读
- css - 聚焦时如何更改兄弟元素的css规则?
- php - 嵌套数组的 Swagger-UI GET 参数序列化
- python - python版本如何影响模块的使用?
- server - 通过 mqsi 命令的 IIB 应用程序备份选项
- html - 自动播放视频时嵌入的 youtube 视频没有取消静音
- python - AttributeError:“str”对象在代码中没有属性“text”
- android - 在 Android GridAdapter 更新特定项目
- java - JPMS 模块系统问题
- reactjs - 在 Gatsby 中创建翻译路径
- arrays - 当我尝试从循环内的数组中删除元素时,为什么会出现致命错误?