2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.logback.config.loader.impl;
11 import java.io.FileFilter;
12 import java.util.ArrayList;
13 import java.util.Collections;
14 import java.util.List;
15 import java.util.regex.Pattern;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
20 * logback config utils
22 public final class LogbackConfigUtil {
24 /** logback config file pattern (*.xml) */
25 protected static final String LOGBACK_CONFIG_FILE_REGEX_SEED = ".+\\.xml";
26 private static final Logger LOG = LoggerFactory
27 .getLogger(LogbackConfigUtil.class);
32 private LogbackConfigUtil() {
33 throw new UnsupportedOperationException();
37 * @param logConfigRoot folder containing configuration files
38 * @return sorted list of found files
40 public static List<File> harvestSortedConfigFiles(File logConfigRoot) {
41 final Pattern xmlFilePattern = Pattern.compile(LOGBACK_CONFIG_FILE_REGEX_SEED);
42 File[] configs = logConfigRoot.listFiles(new FileFilter() {
44 public boolean accept(File pathname) {
45 return pathname.isFile()
46 && xmlFilePattern.matcher(pathname.getName()).find();
50 List<File> sortedConfigFiles = new ArrayList<File>(configs.length);
51 for (File cfgItem : configs) {
52 LOG.trace("config: {}", cfgItem.toURI());
53 sortedConfigFiles.add(cfgItem);
55 Collections.sort(sortedConfigFiles);
57 return sortedConfigFiles;