From bba6917d70a2fdb93e2433935a94378ee8a16497 Mon Sep 17 00:00:00 2001 From: Dariusz Stefanski Date: Wed, 11 Mar 2015 16:15:02 +0100 Subject: [PATCH] LogbackConfig introduced --- src/main/resources/logback.groovy | 98 +++++++++++++++++-------------- 1 file changed, 55 insertions(+), 43 deletions(-) diff --git a/src/main/resources/logback.groovy b/src/main/resources/logback.groovy index cb06079..4700567 100644 --- a/src/main/resources/logback.groovy +++ b/src/main/resources/logback.groovy @@ -7,51 +7,62 @@ import ch.qos.logback.core.status.OnConsoleStatusListener import static com.ofg.config.BasicProfiles.PRODUCTION import static org.springframework.core.env.AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME -DEFAULT_FILENAME = 'logs/application.log' -DEFAULT_LOG_PATTERN = '%d{yyyy-MM-dd HH:mm:ss.SSSZ, Europe/Warsaw} | %-5level | %X{correlationId} | %thread | %logger{1} | %m%n' -DEFAULT_SCAN_TIME = '1 minutes' -DEFAULT_ROLLING_FILENAME_PATTERN = 'logs/application.%d{yyyy-MM-dd}.log.zip' -DEFAULT_ROLLING_MAX_HISTORY = 7 - -File globalPropsFile() { - def env = System.getenv() - String configFolder = env['CONFIG_FOLDER'] - return new File("${configFolder}/common/global.properties") -} +class LogbackConfig { + private static String DEFAULT_FILENAME = 'logs/application.log' + private static String DEFAULT_LOG_PATTERN = '%d{yyyy-MM-dd HH:mm:ss.SSSZ, Europe/Warsaw} | %-5level | %X{correlationId} | %thread | %logger{1} | %m%n' + private static String DEFAULT_SCAN_TIME = '1 minutes' + private static String DEFAULT_ROLLING_FILENAME_PATTERN = 'logs/application.%d{yyyy-MM-dd}.log.zip' + private static int DEFAULT_ROLLING_MAX_HISTORY = 7 + + private Properties globalProperties + + String getLogPattern() { + return globalProperty('logger.log.pattern') ?: DEFAULT_LOG_PATTERN + } -String globalProp(String propKey) { - Properties props = new Properties() - File globalPropsFile = globalPropsFile() - if (globalPropsFile.exists()) { - globalPropsFile.withInputStream { - stream -> props.load(stream) - } + String getScanTime() { + return globalProperty('logger.scan.time') ?: DEFAULT_SCAN_TIME } - return props[propKey] -} -private String getLogPattern() { - return globalProp('logger.log.pattern') ?: DEFAULT_LOG_PATTERN -} + String getRollingFilenamePattern() { + return globalProperty('logger.rolling.file.pattern') ?: DEFAULT_ROLLING_FILENAME_PATTERN + } -private String getScanTime() { - return globalProp('logger.scan.time') ?: DEFAULT_SCAN_TIME -} + String getLoggerFilename() { + return globalProperty('logger.file') ?: DEFAULT_FILENAME + } -private String getRollingFilenamePattern() { - return globalProp('logger.rolling.file.pattern') ?: DEFAULT_ROLLING_FILENAME_PATTERN -} + int getRollingMaxHistory() { + String maxHistory = globalProperty('logger.rolling.history.max') + if (maxHistory != null) { + return Integer.parseInt(maxHistory) + } else { + return DEFAULT_ROLLING_MAX_HISTORY + } + } -private String getLoggerFilename() { - return globalProp('logger.file') ?: DEFAULT_FILENAME -} + private File globalPropertiesFile() { + def env = System.getenv() + String configFolder = env['CONFIG_FOLDER'] + return new File("${configFolder}/common/global.properties") + } -private int getRollingMaxHistory() { - String maxHistory = globalProp('logger.rolling.history.max') - if (maxHistory != null) { - return Integer.parseInt(maxHistory) - } else { - return DEFAULT_ROLLING_MAX_HISTORY + private String globalProperty(String propKey) { + return globalProperties()[propKey] + } + + private Properties globalProperties() { + if (globalProperties == null) { + Properties props = new Properties() + File globalPropsFile = globalPropertiesFile() + if (globalPropsFile.exists()) { + globalPropsFile.withInputStream { + stream -> props.load(stream) + } + } + globalProperties = props + } + return globalProperties } } @@ -60,11 +71,12 @@ statusListener(OnConsoleStatusListener) String rollingFile = "FILE" String console = "CONSOLE" List whereToLog = [rollingFile, console] -String logPattern = getLogPattern() -String scanTime = getScanTime() -String currentLogFile = getLoggerFilename() -String rollingFileNamePattern = getRollingFilenamePattern() -int rollingFileMaxHistory = getRollingMaxHistory() +LogbackConfig logbackConfig = new LogbackConfig() +String logPattern = logbackConfig.getLogPattern() +String scanTime = logbackConfig.getScanTime() +String currentLogFile = logbackConfig.getLoggerFilename() +String rollingFileNamePattern = logbackConfig.getRollingFilenamePattern() +int rollingFileMaxHistory = logbackConfig.getRollingMaxHistory() println """Starting logback To set your own log file, start it with