ndu*_*eck 5 java logback amazon-cloudwatch spring-boot
我正在尝试将日志从 Spring Boot 应用程序直接发送到 Cloudwatch。我正在使用的Logback Appender当然需要 AWS 凭证。由于大多数开发人员在他们的本地机器上没有 AWS 凭证,只想根据 logback-spring.xml 配置登录到一个文件。大多数测试在本地失败,因为缺少 aws 凭据。
有没有办法只为特定的配置文件初始化 logback appender?
这是 logback-spring.xml 的快照:
<!-- Configuration for your local environment -->
<springProfile name="${user.name}">
<root level="DEBUG">
<appender-ref ref="ROLLING_FILE" />
</root>
</springProfile>
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
...
</appender>
<!-- Configuration for Development Environment -->
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="AWS_LOGS_DEV" />
<appender-ref ref="ROLLING_FILE" />
</root>
</springProfile>
<appender name="AWS_LOGS_DEV" class="ca.pjer.logback.AwsLogsAppender">
<layout>
<pattern>${FILE_LOG_PATTERN}</pattern>
</layout>
<logGroupName>/dev</logGroupName>
<logStreamName>log_${date}</logStreamName>
</appender>
Run Code Online (Sandbox Code Playgroud)
已经解决了。您只需将附加程序提取到另一个 logback 文件:
logback-spring.xml
<!-- Configuration for your local environment -->
<springProfile name="${user.name}">
<root level="DEBUG">
<appender-ref ref="ROLLING_FILE" />
</root>
</springProfile>
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
...
</appender>
<!-- Configuration for Environment in AWS, extracted into its own logback-prod.xml file-->
<springProfile name="prod">
<include resource="logback-prod.xml" />
</springProfile>
Run Code Online (Sandbox Code Playgroud)
logback-prod.xml
<included>
<root level="DEBUG">
<appender-ref ref="AWS_LOGS_DEV" />
<appender-ref ref="ROLLING_FILE" />
</root>
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<appender name="AWS_LOGS_DEV" class="ca.pjer.logback.AwsLogsAppender">
<layout>
<pattern>${FILE_LOG_PATTERN}</pattern>
</layout>
<logGroupName>/prod</logGroupName>
<logStreamName>log_${date}</logStreamName>
<maxBatchLogEvents>200</maxBatchLogEvents>
<maxFlushTimeMillis>30000</maxFlushTimeMillis>
<maxBlockTimeMillis>5000</maxBlockTimeMillis>
</appender>
</included>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7898 次 |
| 最近记录: |