package org.slf4j.impl; import org.slf4j.Logger; import alma.acs.logging.AcsLogger; import alma.acs.logging.ClientLogManager; import alma.acs.logging.adapters.JacORBFilter; /** * This class creates and administrates loggers for jacorb * on behalf of the slf4j-ACS logger factory {@link ACSLoggerFactory}. * <p> * Simplification of the large number of jacorb loggers: * All jacorb requests get the same ACS logger instance * that uses the name "jacorb" as given in {@link #JACORB_LOGGER_NAME}, * or "jacorb@<process-name>" if a process/container name is known to the ACS logging libs. */ public class JacorbLoggerHelper { public static final String JACORB_LOGGER_NAME = "jacorb"; /** * The slf4j adapter for the jacorb logger. */ private Logger jdkAdapter = null; /** * @see ACSLoggerFactory#getLogger(String) */ public Logger getLogger(String name) { if (jdkAdapter == null) { // reuse one acs logger for all jacorb loggers AcsLogger acsLoggerDelegate = ClientLogManager.getAcsLogManager().getLoggerForCorba(JACORB_LOGGER_NAME, true); acsLoggerDelegate.addLoggerClass(JDK14LoggerAdapter.class); JacORBFilter logFilter = new JacORBFilter(); logFilter.setLogLevel(acsLoggerDelegate.getLevel()); // AcsLogger will later update the filter log level if there are changes acsLoggerDelegate.setFilter(logFilter); jdkAdapter = new JDK14LoggerAdapter(acsLoggerDelegate); } return jdkAdapter; } }