diff --git a/api/pom.xml b/api/pom.xml index b1dff324cf..dc952d41b6 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -68,6 +68,14 @@ com.fasterxml.jackson.core jackson-databind + + ch.qos.logback.contrib + logback-jackson + + + ch.qos.logback.contrib + logback-json-classic + diff --git a/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/CustomJsonLayout.java b/api/src/main/java/org/commonjava/indy/CustomJsonLayout.java similarity index 52% rename from subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/CustomJsonLayout.java rename to api/src/main/java/org/commonjava/indy/CustomJsonLayout.java index c910ab3ced..13fd677b8d 100644 --- a/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/CustomJsonLayout.java +++ b/api/src/main/java/org/commonjava/indy/CustomJsonLayout.java @@ -13,20 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.commonjava.indy.bind.jaxrs; +package org.commonjava.indy; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.contrib.json.classic.JsonLayout; -import com.fasterxml.jackson.core.JsonProcessingException; -import org.commonjava.indy.conf.EnvironmentConfig; -import org.commonjava.indy.model.core.io.IndyObjectMapper; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.enterprise.inject.spi.CDI; +import java.util.HashMap; import java.util.Map; - -import static org.commonjava.indy.bind.jaxrs.RequestContextConstants.ENVIRONMENT; +import java.util.stream.Stream; /** * Created by yma on 2019/3/26. @@ -34,28 +31,45 @@ public class CustomJsonLayout extends JsonLayout { + public static final String ENVIRONMENT = "environment"; + private final Logger logger = LoggerFactory.getLogger( getClass() ); + private String environmentMappings; + + private Map envars; + + public String getEnvironmentMappings() + { + return environmentMappings; + } + + public void setEnvironmentMappings( final String environmentMappings ) + { + this.environmentMappings = environmentMappings; + + String[] mappings = environmentMappings == null ? new String[0] : environmentMappings.split( "\\s*,\\s*" ); + envars = new HashMap<>(); + Stream.of(mappings).forEach( kv ->{ + String[] keyAlias = kv.split( "\\s*=\\s*" ); + if ( keyAlias.length > 1 ) + { + String value = System.getenv( keyAlias[0].trim() ); + if ( StringUtils.isEmpty( value ) ) + { + value = "Unknown"; + } + + envars.put( keyAlias[1].trim(), value ); + } + } ); + } + @Override protected void addCustomDataToJsonMap( Map map, ILoggingEvent iLoggingEvent ) { - IndyObjectMapper objectMapper = new IndyObjectMapper( true ); super.addCustomDataToJsonMap( map, iLoggingEvent ); - if ( !iLoggingEvent.getMDCPropertyMap().isEmpty() ) - { - Map mdcs = (Map) map.get( MDC_ATTR_NAME ); - try - { - Map envars = CDI.current().select( EnvironmentConfig.class ).get().getEnvars(); - mdcs.put( ENVIRONMENT, objectMapper.writeValueAsString( envars ) ); - } - catch ( JsonProcessingException e ) - { - mdcs.put( ENVIRONMENT, "{error: \"Envars could not be processed by Jackson.\"}" ); - logger.error( String.format( "Failed to create environment mdc. Reason: %s", e.getMessage() ), e ); - } - map.put( MDC_ATTR_NAME, mdcs ); - } + map.put( ENVIRONMENT, envars ); } } diff --git a/deployments/launcher/src/main/etc/indy/logging/logback.xml b/deployments/launcher/src/main/etc/indy/logging/logback.xml index e95738566f..7bb312d41f 100644 --- a/deployments/launcher/src/main/etc/indy/logging/logback.xml +++ b/deployments/launcher/src/main/etc/indy/logging/logback.xml @@ -82,43 +82,6 @@ - - - @@ -134,9 +97,16 @@ - @@ -193,14 +168,6 @@ - - - - diff --git a/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/RequestContextConstants.java b/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/RequestContextConstants.java index 33e6985c15..b702556c0b 100644 --- a/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/RequestContextConstants.java +++ b/subsys/jaxrs/src/main/java/org/commonjava/indy/bind/jaxrs/RequestContextConstants.java @@ -60,7 +60,4 @@ public class RequestContextConstants @Thread @MDC public static final String PREFERRED_ID = "preferred-id"; - - @Thread @MDC - public static final String ENVIRONMENT = "environment"; }