/* | |
* 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 org.apache.log4j; | |
import java.util.Enumeration; | |
import org.apache.log4j.helpers.NullEnumeration; | |
import org.apache.log4j.spi.HierarchyEventListener; | |
import org.apache.log4j.spi.LoggerFactory; | |
import org.apache.log4j.spi.LoggerRepository; | |
import org.apache.log4j.spi.RepositorySelector; | |
import org.apache.logging.log4j.core.LoggerContext; | |
import org.apache.logging.log4j.util.Strings; | |
/** | |
* | |
*/ | |
public final class LogManager { | |
/** | |
* @deprecated This variable is for internal use only. It will | |
* become package protected in future versions. | |
* */ | |
@Deprecated | |
public static final String DEFAULT_CONFIGURATION_FILE = "log4j.properties"; | |
/** | |
* @deprecated This variable is for internal use only. It will | |
* become private in future versions. | |
* */ | |
@Deprecated | |
public static final String DEFAULT_CONFIGURATION_KEY = "log4j.configuration"; | |
/** | |
* @deprecated This variable is for internal use only. It will | |
* become private in future versions. | |
* */ | |
@Deprecated | |
public static final String CONFIGURATOR_CLASS_KEY = "log4j.configuratorClass"; | |
/** | |
* @deprecated This variable is for internal use only. It will | |
* become private in future versions. | |
*/ | |
@Deprecated | |
public static final String DEFAULT_INIT_OVERRIDE_KEY = "log4j.defaultInitOverride"; | |
static final String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml"; | |
private static final LoggerRepository REPOSITORY = new Repository(); | |
private LogManager() { | |
} | |
public static Logger getRootLogger() { | |
return Category.getInstance(PrivateManager.getContext(), Strings.EMPTY); | |
} | |
public static Logger getLogger(final String name) { | |
return Category.getInstance(PrivateManager.getContext(), name); | |
} | |
public static Logger getLogger(final Class<?> clazz) { | |
return Category.getInstance(PrivateManager.getContext(), clazz.getName()); | |
} | |
public static Logger getLogger(final String name, final LoggerFactory factory) { | |
return Category.getInstance(PrivateManager.getContext(), name); | |
} | |
public static Logger exists(final String name) { | |
final LoggerContext ctx = PrivateManager.getContext(); | |
if (!ctx.hasLogger(name)) { | |
return null; | |
} | |
return Logger.getLogger(name); | |
} | |
@SuppressWarnings("rawtypes") | |
public static Enumeration getCurrentLoggers() { | |
return NullEnumeration.getInstance(); | |
} | |
static void reconfigure() { | |
final LoggerContext ctx = PrivateManager.getContext(); | |
ctx.reconfigure(); | |
} | |
/** | |
* No-op implementation. | |
*/ | |
public static void shutdown() { | |
} | |
/** | |
* No-op implementation. | |
*/ | |
public static void resetConfiguration() { | |
} | |
/** | |
* No-op implementation. | |
* @param selector The RepositorySelector. | |
* @param guard prevents calls at the incorrect time. | |
* @throws IllegalArgumentException if a parameter is invalid. | |
*/ | |
public static void setRepositorySelector(final RepositorySelector selector, final Object guard) | |
throws IllegalArgumentException { | |
} | |
public static LoggerRepository getLoggerRepository() { | |
return REPOSITORY; | |
} | |
/** | |
* The Repository. | |
*/ | |
private static class Repository implements LoggerRepository { | |
@Override | |
public void addHierarchyEventListener(final HierarchyEventListener listener) { | |
} | |
@Override | |
public boolean isDisabled(final int level) { | |
return false; | |
} | |
@Override | |
public void setThreshold(final Level level) { | |
} | |
@Override | |
public void setThreshold(final String val) { | |
} | |
@Override | |
public void emitNoAppenderWarning(final Category cat) { | |
} | |
@Override | |
public Level getThreshold() { | |
return Level.OFF; | |
} | |
@Override | |
public Logger getLogger(final String name) { | |
return Category.getInstance(PrivateManager.getContext(), name); | |
} | |
@Override | |
public Logger getLogger(final String name, final LoggerFactory factory) { | |
return Category.getInstance(PrivateManager.getContext(), name); | |
} | |
@Override | |
public Logger getRootLogger() { | |
return Category.getRoot(PrivateManager.getContext()); | |
} | |
@Override | |
public Logger exists(final String name) { | |
return LogManager.exists(name); | |
} | |
@Override | |
public void shutdown() { | |
} | |
@Override | |
@SuppressWarnings("rawtypes") | |
public Enumeration getCurrentLoggers() { | |
return NullEnumeration.getInstance(); | |
} | |
@Override | |
@SuppressWarnings("rawtypes") | |
public Enumeration getCurrentCategories() { | |
return NullEnumeration.getInstance(); | |
} | |
@Override | |
public void fireAddAppenderEvent(final Category logger, final Appender appender) { | |
} | |
@Override | |
public void resetConfiguration() { | |
} | |
} | |
/** | |
* Internal LogManager. | |
*/ | |
private static class PrivateManager extends org.apache.logging.log4j.LogManager { | |
private static final String FQCN = LogManager.class.getName(); | |
public static LoggerContext getContext() { | |
return (LoggerContext) getContext(FQCN, false); | |
} | |
public static org.apache.logging.log4j.Logger getLogger(final String name) { | |
return getLogger(FQCN, name); | |
} | |
} | |
} |