package org.mobicents.slee.container.management.jmx.log; import java.io.IOException; import java.net.URI; import java.util.List; import java.util.logging.*; import org.jboss.system.ServiceMBean; public interface MobicentsLogManagerMBeanImplMBean extends ServiceMBean { // ========= PURE PROPS ======== public void _setDefaultLoggerLevel(Level l); public Level _getDefaultLoggerLevel(); public void setDefaultLoggerLevel(String l); public String getDefaultLoggerLevel(); public void _setDefaultHandlerLevel(Level l); public Level _getDefaultHandlerLevel(); public void setDefaultHandlerLevel(String l); public String getDefaultHandlerLevel(); public void setDefaultNotificationInterval(int numberOfEntries); public int getDefaultNotificationInterval(); // ========= END PROPS /** * SImilar to LoggingMXBean, return list of available loggers. Filter is * string that has to occur in loggers name. * * @param - * specifies string that has to occur in loggers name, if null - * all names are returned. (Simply regex) * @return */ public List<String> getLoggerNames(String regex); /** * Same as LoggingMXBean - sets level for certain logger. * * @param loggerName - * name of the logger * @param level - * level to be set * @throws IllegalArgumentException - * thrown when there is no logger under certain name. */ public void setLoggerLevel(String loggerName, Level level) throws IllegalArgumentException; /** * Same as LoggingMXBean - sets level for certain logger. This method * accepts String representation of logger level. * * @param loggerName - * name of the logger * @param level - * level to be set * @throws IllegalArgumentException - * thrown when there is no logger under certain name or String * dose not represent valid logger level. */ public void setLoggerLevel(String loggerName, String level) throws IllegalArgumentException; public String getLoggerLevel(String loggerName) throws IllegalArgumentException; /** * Resets all loggers level to default one */ public void resetLoggerLevels(); /** * Resets loggers under certain name to log on certain level. * * @param loggerName */ public void resetLoggerLevel(String loggerName); /** * Removes(set level to Level.OFF, handlers are removed) all loggers that * were created by this MBean - this will usually include loggers for whole * packages. It also removes all handlers - either NotificationHandler and * SocketHandler for each defined logger(either by this MBean or by source * code). */ public void clearLoggers(); /** * Removes all loggers under certain branch. * * @param name - * logger name(branch name) */ public void clearLoggers(String name); /** * Tries to add logger if it doesnt exist * * @param name - * name of logger * @param level - * level for this logger, if <b>null</b> than default level for * logger is used * @return * <ul> * <li><b>true</b> - if logger didnt exist and it was created</li> * <li><b>false</b> - if logger did exist and it was not * created</li> * </ul> * @throws NullPointerException - * when arg is null; */ public boolean addLogger(String name, Level level) throws NullPointerException; /** * Tries to add logger if it doesnt exist * * @param name - * name of logger * @param level - * level for this logger, if <b>null</b> than default level for * logger is used * @return * <ul> * <li><b>true</b> - if logger didnt exist and it was created</li> * <li><b>false</b> - if logger did exist and it was not * created</li> * </ul> * * @throws IllegalArgumentException - * when level is not valid string representation of logging * level * @throws NullPointerException - * when arg is null; */ public boolean addLogger(String name, String level) throws IllegalArgumentException, NullPointerException; /** * Adds SocketHandler to certain logger, this logger must exist prior this * function is called * * @param loggerName - * name of the logger, cant be null * @param handlerLevel - * level for this handler, if its null default level for handlers * will be used * @param handlerName - * name for this handler, cant be duplicate. * @param formaterClassName - * name of formater class for this handler, can be null. * @param filterClassName - * name of filter class for this handler, can be null. * @param host - * host address * @param port - * port address * @throws IllegalArgumentException - * thrown when: * <ul> * <li>host is not a valid inet address</li> * <li>port <0 </li> * </ul> * @throws NullPointerException - * if arg other than: * <ul> * <li>formaterClassName</li> * <li>filterClassName</li> * <li>handlerLevel</li> * </ul> * is null. * @throws IllegalStateException :- * thrown when: * <ul> * <li>Logger under certain name doesnt exist</li> * <li>handler name is duplicate of another handler for this * logger or is reserved one ->NOTIFICATION</li> * </ul> * @throw IOException - when host cant be reached */ public void addSocketHandler(String loggerName, Level handlerLevel, String handlerName, String formaterClassName, String filterClassName, String host, int port) throws IllegalArgumentException, NullPointerException, IOException; /** * Adds SocketHandler to certain logger, this logger must exist prior this * function is called * * @param loggerName - * name of the logger, cant be null * @param handlerLevel - * level for this handler, if its null default level for handlers * will be used * @param handlerName - * name for this handler, cant be duplicate. * @param formaterClassName - * name of formater class for this handler, can be null. * @param filterClassName - * name of filter class for this handler, can be null. * @param host - * host address * @param port - * port address * @throws IllegalArgumentException - * thrown when: * <ul> * <li>host is not a valid inet address</li> * <li>port <0 </li> * <li> handlerLevel!=null and does not represent valid logging * level </li> * <li>formaterClassName is not valid formater class</li> * <li>filterClassName is not valid filter class</li> * </ul> * @throws NullPointerException - * if arg other than: * <ul> * <li>formaterClassName</li> * <li>filterClassName</li> * <li>handlerLevel</li> * </ul> * is null. * @throws IllegalStateException :- * thrown when: * <ul> * <li>Logger under certain name doesnt exist</li> * <li>handler name is duplicate of another handler for this * logger or is reserved one ->NOTIFICATION</li> * </ul> * @throw IOException - when host cant be reached */ public void addSocketHandler(String loggerName, String handlerLevel, String handlerName, String formaterClassName, String filterClassName, String host, int port) throws IllegalArgumentException, NullPointerException, IOException; /** * Tries to remove handler from logger. * * @param loggerName - * name of the logger * @param handlerName - * handler name that has been added by this MBean * @return * <ul> * <li><b>true</b> - if logger exists, and it was removed</li> * <li><b>false</b> - otherwise</li> * </ul> */ public boolean removeHandler(String loggerName, String handlerName); public boolean removeHandler(String loggerName, int index); /** * Adds notification handler to logger if it exists. Its name is set to * <b>NOTIFICATION</b>. There can be only one notification handler. This * handler holds reference to up to numberOfEntries log entries and fires * notification. Notification can be triggered prematurely in case when * someone calls fetchLogContent function, this will cause notification to * be fired along with log entries return as outcome of invocation. * * @param loggerName - * name of the logger, it must exists prior this function call * @param numberOfEntries - * number of log entries after notification is sent. If <=0 * default value is used * @param level - * level for this handler, if null, default value is used * @param formaterClassName - * name of formater class for this handler, can be null. * @param filterClassName - * name of filter class for this handler, can be null. * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger under certain name does not exist</li> * <li>formaterClassName is not valid formater class</li> * <li>filterClassName is not valid filter class</li> * </ul> * @throws IllegalStateException - * logger under that name already has notification handler * @throws NullPointerException - * loggerName is null */ public void addNotificationHandler(String loggerName, int numberOfEntries, Level level, String formaterClassName, String filterClassName) throws IllegalArgumentException, IllegalStateException, NullPointerException; public void addNotificationHandler(String loggerName, int numberOfEntries, String level, String formaterClassName, String filterClassName) throws IllegalArgumentException, IllegalStateException, NullPointerException; /** * Returns names of handlers for logger * * @param loggerName - * logger name, cant be null, must be valid * @return List with names of handlers for this loggers * @throws IllegalArgumentException - * logger does not exist */ public List<String> getHandlerNamesForLogger(String loggerName) throws IllegalArgumentException; /** * Fetches level of particular handler * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * valid name of handler, cant be null * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>handler does not exist</li> * </ul> * * @throws NullPointerException * thrown when: * <ul> * <li>arg is null</li> * </ul> */ public String getHandlerLevel(String loggerName, String handlerName) throws IllegalArgumentException, NullPointerException; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * name of the handler, cant be null and handler ust exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * <li>handler under specific name does not exist </li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>arg is null</li> * </ul> */ public String getHandlerFilterClassName(String loggerName, String handlerName) throws IllegalArgumentException, NullPointerException; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * name of the handler, cant be null and handler ust exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * <li>handler under specific name does not exist </li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>arg is null</li> * </ul> */ public String getHandlerFormaterClassName(String loggerName, String handlerName) throws IllegalArgumentException, NullPointerException;; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>args is null</li> * @throws IllegalStateException * thrown when: * <ul> * <li>logger does not have notification handler</li> * </ul> */ public int getHandlerNotificationInterval(String loggerName) throws IllegalArgumentException, NullPointerException, IllegalStateException; public String getHandlerClassName(String loggerName, String handlerName) throws IllegalArgumentException, NullPointerException, IllegalStateException; public String getHandlerClassName(String loggerName, int index) throws IllegalArgumentException, NullPointerException, IllegalStateException; /** * Fetches level of particular handler * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * valid name of handler, cant be null * @param level - * new handelr level * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>handler does not exist</li> * <li>logger does not exist</li> * <li>level is not valid string representation of logging * level</li> * </ul> * * @throws NullPointerException * thrown when: * <ul> * <li>arg is null</li> * </ul> */ public void setHandlerLevel(String loggerName, String handlerName, String level) throws IllegalArgumentException, NullPointerException; /** * Fetches level of particular handler * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * valid name of handler, cant be null * @param level - * new handelr level * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>handler does not exist</li> * <li>logger does not exist</li> * </ul> * * @throws NullPointerException * thrown when: * <ul> * <li>arg is null</li> * </ul> */ public void setHandlerLevel(String loggerName, String handlerName, Level level) throws IllegalArgumentException, NullPointerException; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * name of the handler, cant be null and handler ust exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * <li>handler under specific name does not exist </li> * <li>className is not valid filter class name</li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>args is null</li> * </ul> */ public void setHandlerFilterClassName(String loggerName, String handlerNamem, String className) throws IllegalArgumentException, NullPointerException; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @param handlerName - * name of the handler, cant be null and handler ust exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * <li>handler under specific name does not exist </li> * <li>className is not a valid formater class name </li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>args is null</li> * </ul> */ public void setHandlerFormaterClassName(String loggerName, String handlerName, String className) throws IllegalArgumentException, NullPointerException;; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @return * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>args is null</li> * @throws IllegalStateException * thrown when: * <ul> * <li>logger does not have notification handler</li> * </ul> */ public void setHandlerNotificationInterval(String loggerName, int numberOfEntries) throws IllegalArgumentException, NullPointerException, IllegalStateException; /** * * @param loggerName - * name of the logger, cant be null and logger must exist * @throws IllegalArgumentException * thrown when: * <ul> * <li>logger does not exist</li> * </ul> * @throws NullPointerException * thrown when: * <ul> * <li>args is null</li> * @throws IllegalStateException * thrown when: * <ul> * <li>logger does not have notification handler</li> * </ul> */ public String fetchLog(String loggerName) throws IllegalArgumentException, IllegalStateException, NullPointerException; // ** METHODS BELOW ARE GENERIC, THEY ALLOW TO CONTROLL ALL HANDLERS /** * Triggers reareadigng configuration file. * * @param uri - * target configuration file in Properties format, if null, local * file is read(jre local) */ public void reReadConf(URI uri) throws IOException; /** * Adds handler, for now some parameters are ignored. * * @param loggerName * @param handlerName * @param handlerClassName * @param handlerConstructorParameterTypes * @param handlerConstructorParamValues * @param formaterClass * @param formatterConstructorParameterTypes - * ignored * @param formatterConstructorParamValues - * ignored * @param filterClass * @param filterConstructorParameterTypes - * ignored * @param filterConstructorParamValues - * ignored * @throws NullPointerException * @throws IllegalArgumentException * @throws IllegalStateException */ //public void addHandler(String loggerName, String handlerName,String handlerLevel, // String handlerClassName, String[] handlerConstructorParameterTypes, // String[] handlerConstructorParamValues, String formaterClass, // String[] formatterConstructorParameterTypes, // String[] formatterConstructorParamValues, String filterClass, // String[] filterConstructorParameterTypes, // String[] filterConstructorParamValues) throws NullPointerException, // IllegalArgumentException, IllegalStateException; public void addHandler(String loggerName, String handlerName, String handlerLevel, String handlerClassName, Object handlerConstructorParameterTypes, Object handlerConstructorParamValues, String formaterClass, Object formatterConstructorParameterTypes, Object formatterConstructorParamValues, String filterClass, Object filterConstructorParameterTypes, Object filterConstructorParamValues) throws NullPointerException, IllegalArgumentException, IllegalStateException; public int numberOfHandlers(String loggerName) throws NullPointerException, IllegalArgumentException; public String getGenericHandlerLevel(String loggerName, int index) throws NullPointerException, IllegalArgumentException; public String getGenericHandlerFilterClassName(String loggerName, int index) throws NullPointerException, IllegalArgumentException; public String getGenericHandlerFormatterClassName(String loggerName, int index) throws NullPointerException, IllegalArgumentException; public void setGenericHandlerLevel(String loggerName, int index, String level) throws NullPointerException, IllegalArgumentException; public void setGenericHandlerFilterClassName(String loggerName, int index, String className) throws NullPointerException, IllegalArgumentException; public void setGenericHandlerFormatterClassName(String loggerName, int index, String className) throws NullPointerException, IllegalArgumentException; public String getHandlerName(String loggerName, int index); public void setHandlerName(String loggerName, int index, String newName); public void setUseParentHandlersFlag(String loggerName, boolean flag); public boolean getUseParentHandlersFlag(String handlerName); public String getLoggerFilterClassName(String loggerName) throws IllegalArgumentException; //public void setLoggerFilterClassName(String loggerName, String className, // String[] constructorParameters, String[] paramValues) // throws NullPointerException, IllegalArgumentException, // IllegalStateException; public void setLoggerFilterClassName(String loggerName, String className, Object constructorParameters, Object paramValues) throws NullPointerException, IllegalArgumentException, IllegalStateException; }