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;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
21 * logback config utils
23 public final class LogbackConfigUtil {
25 /** logback config file pattern (*.xml) */
26 protected static final String LOGBACK_CONFIG_FILE_REGEX_SEED = ".+\\.xml";
27 private static final Logger LOG = LoggerFactory
28 .getLogger(LogbackConfigUtil.class);
33 private LogbackConfigUtil() {
34 throw new UnsupportedOperationException();
38 * @param logConfigRoot folder containing configuration files
39 * @return sorted list of found files
41 public static List<File> harvestSortedConfigFiles(File logConfigRoot) {
42 final Pattern xmlFilePattern = Pattern.compile(LOGBACK_CONFIG_FILE_REGEX_SEED);
43 File[] configs = logConfigRoot.listFiles(new FileFilter() {
45 public boolean accept(File pathname) {
46 return pathname.isFile()
47 && xmlFilePattern.matcher(pathname.getName()).find();
51 List<File> sortedConfigFiles = new ArrayList<File>(configs.length);
52 for (File cfgItem : configs) {
53 LOG.trace("config: {}", cfgItem.toURI());
54 sortedConfigFiles.add(cfgItem);
56 Collections.sort(sortedConfigFiles);
58 return sortedConfigFiles;