2017-09-18 3 views
2

Spring Boot Application에서 Cloudwatch로 로그를 직접 보내려고합니다. Logback Appender I'm using에는 물론 AWS 자격 증명이 필요합니다. 대부분의 개발자는 로컬 시스템에 AWS Credentials가 없으므로 logback-spring.xml 구성에 따라 파일에 로그인하기 만하면됩니다. aws 자격 증명이 없어 대부분의 테스트가 로컬에서 실패합니다.
특정 프로필에 대해서만 logback appender를 초기화하는 방법이 있습니까? 이미 해결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-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> 
: 당신은 또 다른 logback 파일에 펜더를 추출해야
관련 문제