Skip to content

Commit d31e75a

Browse files
committed
configurable log level
1 parent 47ae37d commit d31e75a

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

src/main/java/dev/dsf/fhir/validator/main/ValidationConfig.java

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@
1717
import java.util.function.Predicate;
1818
import java.util.stream.Collectors;
1919

20+
import org.apache.logging.log4j.Level;
21+
import org.apache.logging.log4j.LogManager;
22+
import org.apache.logging.log4j.core.config.Configurator;
2023
import org.hl7.fhir.r4.model.CapabilityStatement;
2124
import org.hl7.fhir.r4.model.Enumerations.BindingStrength;
2225
import org.slf4j.Logger;
2326
import org.slf4j.LoggerFactory;
27+
import org.springframework.beans.factory.InitializingBean;
2428
import org.springframework.beans.factory.annotation.Value;
2529
import org.springframework.context.annotation.Bean;
2630
import org.springframework.context.annotation.Configuration;
@@ -64,7 +68,7 @@
6468

6569
@Configuration
6670
@PropertySource(ignoreResourceNotFound = true, value = "file:application.properties")
67-
public class ValidationConfig
71+
public class ValidationConfig implements InitializingBean
6872
{
6973
private static final Logger logger = LoggerFactory.getLogger(ValidationConfig.class);
7074

@@ -73,9 +77,30 @@ public static enum TerminologyServerConnectionTestStatus
7377
OK, NOT_OK, DISABLED
7478
}
7579

80+
public static enum LogLevel
81+
{
82+
TRACE(Level.TRACE), DEBUG(Level.DEBUG), INFO(Level.INFO), WARN(Level.WARN), ERROR(Level.ERROR), FATAL(
83+
Level.FATAL), OFF(Level.OFF);
84+
85+
private final Level level;
86+
87+
private LogLevel(Level level)
88+
{
89+
this.level = level;
90+
}
91+
92+
public Level level()
93+
{
94+
return level;
95+
}
96+
}
97+
7698
@Value("${dev.dsf.validation:true}")
7799
private boolean validationEnabled;
78100

101+
@Value("${dev.dsf.logLevel:INFO}")
102+
private LogLevel logLevel;
103+
79104
@Value("#{'${dev.dsf.validation.package:}'.trim().split('(,[ ]?)|(\\n)')}")
80105
private List<String> validationPackages;
81106

@@ -182,6 +207,15 @@ public static enum TerminologyServerConnectionTestStatus
182207
@Value("${dsf.dev.validation.proxy.password:#{null}}")
183208
private char[] proxyPassword;
184209

210+
@Override
211+
public void afterPropertiesSet() throws Exception
212+
{
213+
Configurator.setLevel(LogManager.getLogger("dev.dsf").getName(), logLevel.level());
214+
215+
if (EnumSet.of(LogLevel.ERROR, LogLevel.WARN, LogLevel.OFF).contains(logLevel))
216+
Configurator.setLevel(LogManager.getRootLogger(), logLevel.level());
217+
}
218+
185219
@Bean
186220
public ObjectMapper objectMapper()
187221
{
@@ -286,6 +320,7 @@ private Path cacheFolder(String cacheFolderType, String cacheFolder)
286320
if (cacheFolderPath.startsWith(systemTempFolder))
287321
{
288322
Files.createDirectories(cacheFolderPath);
323+
289324
logger.debug("Cache folder for type {} created at {}", cacheFolderType,
290325
cacheFolderPath.toAbsolutePath().toString());
291326
}
@@ -327,6 +362,7 @@ private KeyStore trustStore(String trustStoreType, String trustCertificatesFile)
327362
try
328363
{
329364
logger.debug("Creating trust-store for {} from {}", trustStoreType, trustCertificatesPath.toString());
365+
330366
List<X509Certificate> certificates = PemReader.readCertificates(trustCertificatesPath);
331367
return KeyStoreCreator.jksForTrustedCertificates(certificates);
332368
}

src/main/resources/log4j2.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
<Loggers>
1010
<Logger name="dev.dsf" level="TRACE"/>
11-
<Logger name="org.eclipse.jetty" level="INFO"/>
1211
<Logger name="ca.uhn.fhir.parser.LenientErrorHandler" level="ERROR"/>
1312

1413
<Root level="WARN">

0 commit comments

Comments
 (0)