blob: 751cb86972d576c6dc218212adff0fd9462bdf01 [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 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);
}
}
}