2017-09-18 2 views
2

Ich versuche, Protokolle von meiner Spring Boot-Anwendung direkt an Cloudwatch zu senden. Die Logback Appender I'm using erfordert natürlich AWS-Anmeldeinformationen. Da die meisten Entwickler keine AWS-Anmeldeinformationen auf ihren lokalen Computern haben und sich nur in einer Datei gemäß der Konfiguration logback-spring.xml anmelden möchten. Die meisten Tests schlagen aufgrund fehlender aws-Anmeldedaten lokal fehl.
Gibt es eine Möglichkeit, den Logback Appender nur für ein bestimmtes Profil zu initialisieren?
Hier ist eine Momentaufnahme des logback-spring.xml:AWS Cloudwatch Logback Appender für Spring-Boot-Anwendungen

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

Antwort

0

bereits gelöst. Sie müssen nur die appender auf einen anderen logback-Datei extrahieren:

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> 
Verwandte Themen