diff --git a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle index 90e45441f..87ff7dbf6 100644 --- a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle +++ b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle @@ -44,6 +44,10 @@ dependencyManagement { dependency 'org.slf4j:log4j-over-slf4j:1.7.36' dependency 'ch.qos.logback:logback-core:1.2.11' dependency 'ch.qos.logback:logback-classic:1.2.11' + dependency 'ch.qos.logback.contrib:logback-json-classic:0.1.5' + dependency 'ch.qos.logback.contrib:logback-jackson:0.1.5' + dependency 'org.codehaus.janino:janino:3.1.9' + dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.10' dependency 'com.google.guava:guava:31.1-jre' diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index 6ad81837a..85c0f98d4 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -164,6 +164,10 @@ dependencies { annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.mapstruct:mapstruct-processor' + implementation 'ch.qos.logback.contrib:logback-json-classic' + implementation 'ch.qos.logback.contrib:logback-jackson' + implementation 'org.codehaus.janino:janino' + // testCompile dependencies are ONLY used in src/test, not src/main. // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly! // diff --git a/fineract-provider/src/main/resources/application.properties b/fineract-provider/src/main/resources/application.properties index 4521a4791..8f4964c82 100644 --- a/fineract-provider/src/main/resources/application.properties +++ b/fineract-provider/src/main/resources/application.properties @@ -104,6 +104,7 @@ fineract.report.export.s3.enabled=${FINERACT_REPORT_EXPORT_S3_ENABLED:false} fineract.jpa.statementLoggingEnabled=${FINERACT_STATEMENT_LOGGING_ENABLED:false} fineract.notification.user-notification-system.enabled=${FINERACT_USER_NOTIFICATION_SYSTEM_ENABLED:true} +fineract.logging.json.enabled=${FINERACT_LOGGING_JSON_ENABLED:false} # Logging pattern for the console logging.pattern.console=${CONSOLE_LOG_PATTERN:%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(%replace([%X{correlationId}]){'\\[\\]', ''}) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}} diff --git a/fineract-provider/src/main/resources/logback-spring.xml b/fineract-provider/src/main/resources/logback-spring.xml index 8ede0e3e3..9bfc590c0 100644 --- a/fineract-provider/src/main/resources/logback-spring.xml +++ b/fineract-provider/src/main/resources/logback-spring.xml @@ -20,9 +20,11 @@ --> + + - + @@ -30,15 +32,33 @@ - - - - - - - - - + + + + + + + + + + + false + + true + + + + + + + + + + + + + + diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/ClasspathDuplicatesStepDefinitions.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/ClasspathDuplicatesStepDefinitions.java index 617ae1a21..e4490d6a3 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/ClasspathDuplicatesStepDefinitions.java +++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classpath/ClasspathDuplicatesStepDefinitions.java @@ -112,6 +112,7 @@ public class ClasspathDuplicatesStepDefinitions implements En { || resourcePath.equals("META-INF/ECLIPSE_.RSA") || resourcePath.equals("META-INF/BC2048KE.DSA") || resourcePath.equals("META-INF/BC1024KE.DSA") || resourcePath.equals("META-INF/BC2048KE.SF") || resourcePath.equals("META-INF/BC1024KE.SF") || resourcePath.equals("OSGI-INF/bundle.info") + || resourcePath.equals("META-INF/DUMMY.SF") || resourcePath.equals("META-INF/DUMMY.DSA") // Spring Framework knows what they are do.. || resourcePath.startsWith("META-INF/spring") || resourcePath.startsWith("META-INF/additional-spring") || resourcePath.startsWith("META-INF/terracotta")