2017-09-18 4 views
2

J'essaie d'envoyer des journaux directement à Cloudwatch à partir de mon application de démarrage Spring. Le Logback Appender I'm using, bien sûr, nécessite les informations d'identification AWS. Étant donné que la plupart des développeurs n'ont pas les informations d'identification AWS sur leurs machines locales et veulent simplement se connecter à un fichier conformément à la configuration logback-spring.xml. La plupart des tests échouent localement en raison de l'absence des informations d'identification aws.
Existe-t-il un moyen d'initialiser l'appender logback uniquement pour un profil spécifique?
Voici un aperçu de la logback-spring.xml:AWS Cloudwatch Logback Appender pour les applications de démarrage Spring

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

Répondre

0

déjà résolu. Vous avez juste besoin d'extraire le appender à un autre logback fichier:

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>