a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: Logger.java,v 1.3 2008/06/25 05:47:28 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.plugin.log;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Map;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.logging.Level;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This interface defines methods which will be invoked by the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the Federation Framework to write federation related
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * events and errors to the access and error log files.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic interface Logger {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Initializes the logging for the component.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param componentName the component name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * during initialization.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void init(String componentName) throws LogException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Logs message to the access logs.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level the log level , these are based on those
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * defined in java.util.logging.Level, the values for
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * level can be any one of the following : <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <ul>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>SEVERE (highest value) <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>WARNING <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>INFO <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>CONFIG <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINE <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINER <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINEST (lowest value) <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * </ul>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param messageID the message or a message identifier.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param data string array of dynamic data to be replaced in the message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the User's session object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void access(Level level,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String messageID,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String data[],
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session) throws LogException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Writes access to a component into a log.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level indicating log level
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param msgid Message id
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param data string array of dynamic data only known during run time
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session Session object (it could be null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param props representing log record columns
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public abstract void access(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Level level,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msgid,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String data[],
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map props) throws LogException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Logs error messages to the error logs.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level the log level , these are based on those
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * defined in java.util.logging.Level, the values for
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * level can be any one of the following : <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <ul>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>SEVERE (highest value) <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>WARNING <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>INFO <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>CONFIG <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINE <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINER <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <li>FINEST (lowest value) <br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * </ul>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param messageId the message or a message identifier.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param data string array of dynamic data to be replaced in the message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session the User's Session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void error(Level level,String messageId,String data[],
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session) throws LogException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Writes error occurred in a component into a log.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level indicating log level
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param msgid Message id
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param data string array of dynamic data only known during run time
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session Session object (it could be null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param props log record columns
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public abstract void error(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Level level,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msgid,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String data[],
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Object session,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map props) throws LogException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Checks if the logging is enabled.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if logging is enabled.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isLogEnabled() ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Checks if an access message of the given level would actually be logged
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * by this logger. This check is based on the Logger's effective level.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level a message logging level defined in java.util.logging.Level.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the given message level is currently being logged.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isAccessLoggable(Level level);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Checks if an error message of the given level would actually be logged
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * by this logger. This check is based on the Logger's effective level.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param level a message logging level defined in java.util.logging.Level.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the given message level is currently being logged.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isErrorLoggable(Level level);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster