X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Flogback-config%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Flogback%2Fconfig%2FLogbackModuleFactory.java;fp=opendaylight%2Fconfig%2Flogback-config%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Flogback%2Fconfig%2FLogbackModuleFactory.java;h=732161d463856d338e379fd4f1be29d14c7b7be8;hp=eb0c7da4828acc8f0483a60f617db123d557dc60;hb=6c6c85af56a95fe57389f5ac420876d7ce5cd0e5;hpb=545b424ba9278d7aee12b9a6173e23c1b1d39dd3 diff --git a/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleFactory.java b/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleFactory.java index eb0c7da482..732161d463 100644 --- a/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleFactory.java +++ b/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleFactory.java @@ -24,6 +24,7 @@ import ch.qos.logback.classic.spi.LoggerComparator; import ch.qos.logback.core.Appender; import ch.qos.logback.core.rolling.FixedWindowRollingPolicy; import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy; +import ch.qos.logback.core.rolling.TimeBasedRollingPolicy; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; @@ -31,24 +32,23 @@ import com.google.common.collect.Lists; /** * */ -public class LogbackModuleFactory - extends +public class LogbackModuleFactory extends org.opendaylight.controller.config.yang.logback.config.AbstractLogbackModuleFactory { private static final String INSTANCE_NAME = "singleton"; private Map loggersDTOs; private Map rollingDTOs; private Map consoleDTOs; + private Map fileDTOs; @Override - public LogbackModule instantiateModule(String instanceName, - DependencyResolver dependencyResolver) { + public LogbackModule instantiateModule(String instanceName, DependencyResolver dependencyResolver) { Preconditions.checkArgument(instanceName.equals(INSTANCE_NAME), - "There should be just one instance of logback, named " - + INSTANCE_NAME); + "There should be just one instance of logback, named " + INSTANCE_NAME); prepareDTOs(); - LogbackModule module = new LogbackModule(new ModuleIdentifier( - getImplementationName(), INSTANCE_NAME), dependencyResolver); + LogbackModule module = new LogbackModule(new ModuleIdentifier(getImplementationName(), INSTANCE_NAME), + dependencyResolver); + module.setFileAppenderTO(Lists.newArrayList(fileDTOs.values())); module.setConsoleAppenderTO(Lists.newArrayList(consoleDTOs.values())); module.setRollingFileAppenderTO(Lists.newArrayList(rollingDTOs.values())); module.setLoggerTO(Lists.newArrayList(loggersDTOs.values())); @@ -56,28 +56,25 @@ public class LogbackModuleFactory } @Override - public LogbackModule instantiateModule(String instanceName, - DependencyResolver dependencyResolver, LogbackModule oldModule, - AutoCloseable oldInstance) { + public LogbackModule instantiateModule(String instanceName, DependencyResolver dependencyResolver, + LogbackModule oldModule, AutoCloseable oldInstance) { Preconditions.checkArgument(instanceName.equals(INSTANCE_NAME), - "There should be just one instance of logback, named " - + INSTANCE_NAME); + "There should be just one instance of logback, named " + INSTANCE_NAME); prepareDTOs(); - LogbackModule module = new LogbackModule(new ModuleIdentifier( - getImplementationName(), INSTANCE_NAME), dependencyResolver, - oldModule, oldInstance); + LogbackModule module = new LogbackModule(new ModuleIdentifier(getImplementationName(), INSTANCE_NAME), + dependencyResolver, oldModule, oldInstance); module.setConsoleAppenderTO(Lists.newArrayList(consoleDTOs.values())); /* * module.setJCloudsAppender(Lists.newArrayList(jcloudsDTOs.values())); */ + module.setFileAppenderTO(Lists.newArrayList(fileDTOs.values())); module.setRollingFileAppenderTO(Lists.newArrayList(rollingDTOs.values())); module.setLoggerTO(Lists.newArrayList(loggersDTOs.values())); return module; } private void prepareDTOs() { - LoggerContext context = (LoggerContext) LoggerFactory - .getILoggerFactory(); + LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); this.loggersDTOs = prepareLoggersDTOs(context); prepareAppendersDTOs(context); } @@ -85,8 +82,10 @@ public class LogbackModuleFactory private void prepareAppendersDTOs(LoggerContext context) { this.rollingDTOs = new HashMap<>(); this.consoleDTOs = new HashMap<>(); + this.fileDTOs = new HashMap<>(); ch.qos.logback.core.rolling.RollingFileAppender rollingApp; ch.qos.logback.core.ConsoleAppender consoleApp; + ch.qos.logback.core.FileAppender fileApp; Map>> appendersAll = new HashMap<>(); for (Logger log : context.getLoggerList()) { List> appenders = new ArrayList<>(); @@ -101,45 +100,58 @@ public class LogbackModuleFactory for (ch.qos.logback.core.Appender appender : appEntry) { if (appender instanceof ch.qos.logback.core.rolling.RollingFileAppender) { RollingFileAppenderTO app = new RollingFileAppenderTO(); - rollingApp = (ch.qos.logback.core.rolling.RollingFileAppender< ILoggingEvent >) appender; + rollingApp = (ch.qos.logback.core.rolling.RollingFileAppender) appender; app.setAppend(rollingApp.isAppend()); - PatternLayoutEncoder encoder = (PatternLayoutEncoder) rollingApp - .getEncoder(); + PatternLayoutEncoder encoder = (PatternLayoutEncoder) rollingApp.getEncoder(); app.setEncoderPattern(encoder.getPattern()); app.setFileName(rollingApp.getFile()); - FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) rollingApp - .getRollingPolicy(); - app.setMaxIndex(rollingPolicy.getMaxIndex()); - app.setMinIndex(rollingPolicy.getMinIndex()); + if (rollingApp.getRollingPolicy() instanceof FixedWindowRollingPolicy) { + FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) rollingApp + .getRollingPolicy(); + app.setMaxIndex(rollingPolicy.getMaxIndex()); + app.setMinIndex(rollingPolicy.getMinIndex()); + app.setFileNamePattern(rollingPolicy.getFileNamePattern()); + app.setRollingPolicyType("FixedWindowRollingPolicy"); + } else if (rollingApp.getRollingPolicy() instanceof TimeBasedRollingPolicy) { + TimeBasedRollingPolicy rollingPolicy = (TimeBasedRollingPolicy) rollingApp.getRollingPolicy(); + app.setRollingPolicyType("TimeBasedRollingPolicy"); + app.setFileNamePattern(rollingPolicy.getFileNamePattern()); + app.setMaxHistory(rollingPolicy.getMaxHistory()); + app.setCleanHistoryOnStart(rollingPolicy.isCleanHistoryOnStart()); + } SizeBasedTriggeringPolicy triggeringPolicy = (SizeBasedTriggeringPolicy) rollingApp .getTriggeringPolicy(); app.setMaxFileSize(triggeringPolicy.getMaxFileSize()); - app.setFileNamePattern(rollingPolicy.getFileNamePattern()); app.setName(rollingApp.getName()); this.rollingDTOs.put(rollingApp.getName(), app); + } else if (appender instanceof ch.qos.logback.core.FileAppender) { + FileAppenderTO app = new FileAppenderTO(); + fileApp = (ch.qos.logback.core.FileAppender) appender; + app.setName(fileApp.getName()); + app.setAppend(fileApp.isAppend()); + app.setFileName(fileApp.getFile()); + PatternLayoutEncoder encoder = (PatternLayoutEncoder) fileApp.getEncoder(); + app.setEncoderPattern(encoder.getPattern()); + this.fileDTOs.put(fileApp.getName(), app); } if (appender instanceof ch.qos.logback.core.ConsoleAppender) { ConsoleAppenderTO app = new ConsoleAppenderTO(); consoleApp = (ch.qos.logback.core.ConsoleAppender) appender; consoleApp.getCopyOfAttachedFiltersList(); - PatternLayoutEncoder encoder = (PatternLayoutEncoder) consoleApp - .getEncoder(); + PatternLayoutEncoder encoder = (PatternLayoutEncoder) consoleApp.getEncoder(); app.setEncoderPattern(encoder.getPattern()); app.setName(consoleApp.getName()); - app.setThresholdFilter(context.getLogger( - Logger.ROOT_LOGGER_NAME).getEffectiveLevel().levelStr); + app.setThresholdFilter(context.getLogger(Logger.ROOT_LOGGER_NAME).getEffectiveLevel().levelStr); this.consoleDTOs.put(consoleApp.getName(), app); } } } } - private Map prepareLoggersDTOs( - LoggerContext context) { + private Map prepareLoggersDTOs(LoggerContext context) { Map DTOs = new HashMap<>(); List appenders = new ArrayList<>(); - List loggersToBeAdd = removeUnusableLoggers( - context.getLoggerList(), + List loggersToBeAdd = removeUnusableLoggers(context.getLoggerList(), context.getLogger(Logger.ROOT_LOGGER_NAME)); for (org.slf4j.Logger log : loggersToBeAdd) { LoggerTO logger = new LoggerTO(); @@ -148,8 +160,7 @@ public class LogbackModuleFactory else logger.setLevel(((Logger) log).getEffectiveLevel().levelStr); logger.setLoggerName(log.getName()); - Iterator> iter = ((Logger) log) - .iteratorForAppenders(); + Iterator> iter = ((Logger) log).iteratorForAppenders(); while (iter.hasNext()) { Appender element = iter.next(); appenders.add(element.getName()); @@ -162,42 +173,35 @@ public class LogbackModuleFactory return DTOs; } - private List removeUnusableLoggers( - List loggerList, Logger rootLogger) { + private List removeUnusableLoggers(List loggerList, Logger rootLogger) { Collections.sort(loggerList, new LoggerComparator()); Map loggersToReturn = new HashMap<>(); for (org.slf4j.Logger log : loggerList) { boolean shouldAdd = true; - for (Entry entry : loggersToReturn - .entrySet()) { + for (Entry entry : loggersToReturn.entrySet()) { if (StringUtils.contains(log.getName(), entry.getKey())) { if (((Logger) log).getLevel() != null - && ((Logger) log).getLevel().equals( - ((Logger) entry.getValue()).getLevel()) + && ((Logger) log).getLevel().equals(((Logger) entry.getValue()).getLevel()) && !((Logger) log).iteratorForAppenders().hasNext()) { shouldAdd = false; break; } if (((Logger) log).getLevel() == null && ((Logger) log).getEffectiveLevel().equals( - ((Logger) entry.getValue()) - .getEffectiveLevel()) + ((Logger) entry.getValue()).getEffectiveLevel()) && !((Logger) log).iteratorForAppenders().hasNext()) { shouldAdd = false; break; } } - if (((Logger) log).getLevel() != null - && ((Logger) log).getLevel().equals( - rootLogger.getLevel()) + if (((Logger) log).getLevel() != null && ((Logger) log).getLevel().equals(rootLogger.getLevel()) && !((Logger) log).iteratorForAppenders().hasNext()) { shouldAdd = false; break; } if (((Logger) log).getLevel() == null - && ((Logger) log).getEffectiveLevel().equals( - rootLogger.getEffectiveLevel()) + && ((Logger) log).getEffectiveLevel().equals(rootLogger.getEffectiveLevel()) && !((Logger) log).iteratorForAppenders().hasNext()) { shouldAdd = false; break;