2017-09-18 82 views
2

Spring Boot ApplicationからCloudwatchに直接ログを送信しようとしています。 もちろん、Logback Appender I'm usingにはAWS資格情報が必要です。 ほとんどの開発者はローカルマシン上にAWS Credentialsを持っておらず、単にlogback-spring.xml設定に従ってファイルにログインしたいだけです。 aws資格情報がないため、ほとんどのテストはローカルで失敗します。
ログバックアペンダーを特定のプロファイルに対してのみ初期化する方法はありますか?すでに解決AWS Cloudwatch Spring App用Logback Appender

<!-- 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


はここでlogback-spring.xmlのスナップショットです。あなただけの別の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> 
関連する問題