blob: 7a39fb5add6dcc1f097c48d367c47083529abd89 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package flex.messaging.log;
import java.util.List;
import flex.messaging.config.ConfigMap;
/**
* All logger target implementations within the logging framework must
* implement this interface. <code>Target</code> implementations receive log events
* and output information from these events to the appropriate output
* destination which may be a console, log file or some other custom
* destination.
*/
public interface Target
{
/**
* Initializes the target with id and properties.
*
* @param id id for the target.
* @param properties ConfigMap of properties for the target.
*/
void initialize(String id, ConfigMap properties);
/**
* Returns the category filters defined for the <code>Target</code>.
*
* @return The category filters defined for the <code>Target</code>.
*/
List getFilters();
/**
* Sets the category filters that the <code>Target</code> will process
* log events for.
*
* @param value The category filters that the <code>Target</code> will process
*/
void setFilters(List value);
/**
* Adds the category filteer that the <code>Target</code> will process
* log events for.
*
* @param value The new category filter to add to the <code>Target</code>'s list of filters.
*/
void addFilter(String value);
/**
* Removes a category filter from the list of filters the <code>Target</code> will
* process log events for.
*
* @param value The category filter to remove from the <code>Target</code>'s list of filters.
*/
void removeFilter(String value);
/**
* Returns the log level that the <code>Target</code> will process log
* events for. Log events at this level, or at a higher priority level
* will be processed.
*
* @return The log level that the <code>Target</code> will process log events for.
*/
short getLevel();
/**
* Sets the log level that the <code>Target</code> will process log events
* for. Log events at this level, or at a higher priority level will be
* processed.
*
* @param value The log level that the <code>Target</code> will process log events for.
*/
void setLevel(short value);
/**
* Adds a <code>Logger</code> whose category matches the filters list for
* the <code>Target</code>. The <code>Logger</code> will dispatch log events
* to this <code>Target</code> to be output.
*
* @param logger The <code>Logger</code> to add.
*/
void addLogger(Logger logger);
/**
* Removes a <code>Logger</code> from the <code>Target</code>.
*
* @param logger The <code>Logger</code> to remove.
*/
void removeLogger(Logger logger);
/**
* Logs a log event out to the <code>Target</code>s output destination,
* which may be the console or a log file.
*
* @param event The <code>LogEvent</code> containing the information to output.
*/
void logEvent(LogEvent event);
}