我试图从我的Spring Boot应用程序直接将日志发送到Cloudwatch。 Logback Appender I'm using当然需要AWS凭证。 由于大多数开发人员在其本地计算机上没有AWS Credentials,并且只想根据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>
答案 0 :(得分:0)
已经解决了。您只需要将appender解压缩到另一个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 Development Environment -->
<springProfile name="dev">
<include resource="logback-prod.xml" />
</springProfile>
<强>的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>