/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
*
* This program and the accompanying materials are made available under
* the terms of the Common Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/cpl-v10.html
*
* $Id: AppLoggers.java,v 1.1.2.1 2004/07/16 23:32:03 vlad_r Exp $
*/
package com.vladium.emma;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
import com.vladium.logging.ILogLevels;
import com.vladium.logging.Logger;
import com.vladium.util.IProperties;
import com.vladium.util.Strings;
// ----------------------------------------------------------------------------
/**
* @author Vlad Roubtsov, (C) 2004
*/
public
abstract class AppLoggers
{
// public: ................................................................
public static final String PREFIX_VERBOSITY = "verbosity.";
public static final String PROPERTY_VERBOSITY_LEVEL = PREFIX_VERBOSITY + "level";
public static final String DEFAULT_VERBOSITY_LEVEL = ILogLevels.INFO_STRING;
public static final String PROPERTY_VERBOSITY_FILTER = PREFIX_VERBOSITY + "filter";
public static Logger create (final String appName, final IProperties properties, final Logger base)
{
if (properties == null)
throw new IllegalArgumentException ("null input: properties");
// verbosity level:
final int level;
{
final String _level = properties.getProperty (PROPERTY_VERBOSITY_LEVEL,
DEFAULT_VERBOSITY_LEVEL);
level = Logger.stringToLevel (_level);
}
// verbosity filter:
final Set filter;
{
final String _filter = properties.getProperty (PROPERTY_VERBOSITY_FILTER);
Set temp = null;
if (_filter != null)
{
final StringTokenizer tokenizer = new StringTokenizer (_filter, COMMA_DELIMITERS);
if (tokenizer.countTokens () > 0)
{
temp = new HashSet (tokenizer.countTokens ());
while (tokenizer.hasMoreTokens ())
{
temp.add (tokenizer.nextToken ());
}
}
}
filter = temp;
}
return Logger.create (level, null, appName, filter, base);
}
// protected: .............................................................
// package: ...............................................................
// private: ...............................................................
private AppLoggers () {} // this class is not extendible
private static final String COMMA_DELIMITERS = "," + Strings.WHITE_SPACE;
} // end of class
// ---------------------------------------------------------------------------- |