The version of Apache log4j used by SoundHelix.
Clone
HTTPS:
git clone https://vervis.peers.community/repos/aEp6o
SSH:
git clone USERNAME@vervis.peers.community:aEp6o
Branches
Tags
- 1.3alpha-7
- CHAINSAW_2_SANDBOX_MERGE
- CORE_VERSION
- LEVEL_REPLACES_PRIORITY
- PREALPHA_1_3_AS_OF_2004_05_12
- PRE_CHAINSAW_MODEL_CONVERSION
- PRE_UGLI_MOVE
- TAG_CHAINSAW2_MOVE
- log4j-1.2.17
- log4j-1.2.17-rc1
- v1.3alpha8
- v1.3alpha8-temp
- v1_2_1
- v1_2_10-recalled
- v1_2_11
- v1_2_11_rc1
- v1_2_11rc3
- v1_2_12
- v1_2_12_rc1
- v1_2_12_rc2
- v1_2_12_rc3
- v1_2_12_rc4
- v1_2_12_rc5
- v1_2_12_rc6
- v1_2_13
- v1_2_13_rc1
- v1_2_13_rc2
- v1_2_13_site_update
- v1_2_14
- v1_2_14_maven
- v1_2_14_rc1
- v1_2_14_site_update
- v1_2_15
- v1_2_15_rc1
- v1_2_15_rc2
- v1_2_15_rc3
- v1_2_15_rc4
- v1_2_15_rc5
- v1_2_15_rc6
- v1_2_16
- v1_2_16_rc1
- v1_2_16_rc2
- v1_2_17
- v1_2_17-rc1
- v1_2_17_rc1
- v1_2_17_rc2
- v1_2_17_rc3
- v1_2_2
- v1_2_3
- v1_2_4
- v1_2_6
- v1_2_7
- v1_2_9
- v1_2_alpha0
- v1_2_alpha7
- v1_2beta1
- v1_2final
- v1_3alpha_1
- v1_3alpha_6
- v_1_0
- v_1_0_1
- v_1_0_4
- v_1_1
- v_1_1_1
- v_1_1_2
- v_1_1_3
- v_1_1_b1
- v_1_1b2
- v_1_1b3
- v_1_1b5
- v_1_1b6
- v_1_1b7
- v_1_2beta3
Logger.java
/*
* Copyright 1999,2004 The Apache Software Foundation.
*
* Licensed 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 org.apache.log4j.helpers.MessageFormatter;
import org.apache.log4j.spi.LoggerFactory;
/**
* This is the central class in the log4j package. Most logging
* operations, except configuration, are done through this class.
* <p>
*
* @author Ceki Gülcü
* @since log4j 1.2
*/
public class Logger extends Category {
/**
* The fully qualified name of the Logger class. See also the {@link #getFQCN}
* method.
*/
private static final String FQCN = Logger.class.getName();
/**
* This constructor creates a new <code>Logger</code> instance and sets
* its name.
*
* <p>
* It is intended to be used by sub-classes only. You should not create
* loggers directly.
* </p>
*
* @param name The name of the logger.
*/
protected Logger(String name) {
super(name);
}
/**
* Retrieve a logger by name. If the named logger already exists, then the
* existing instance will be reutrned. Otherwise, a new instance is created.
*
* <p>By default, loggers do not have a set level but inherit it from their
* ancestors. This is one of the central features of log4j.
* </p>
*
* @param name The name of the logger to retrieve.
*/
public static Logger getLogger(String name) {
return LogManager.getLogger(name);
}
/**
* Shorthand for <code>{@link #getLogger(Class) getLogger(clazz.getName())}</code>.
*
* @param clazz The name of <code>clazz</code> will be used as the name of
* the logger to retrieve. See {@link #getLogger(String)} for
* more detailed information.
*/
public static Logger getLogger(Class clazz) {
return LogManager.getLogger(clazz.getName());
}
/**
* Return the root of logger for the current hierarchy.
*
* <p>The root logger is always instantiated and available. It's name is
* "root".
* </p>
*
* <p>Nevertheless, note that calling <code>Logger.getLogger("root")</code>
* does not retrieve the root logger but a logger just under root named
* "root".
* </p>
*/
public static Logger getRootLogger() {
return LogManager.getRootLogger();
}
/**
Like {@link #getLogger(String)} except that the type of logger
instantiated depends on the type returned by the {@link
LoggerFactory#makeNewLoggerInstance} method of the
<code>factory</code> parameter.
<p>This method is intended to be used by sub-classes.
@param name The name of the logger to retrieve.
@param factory A {@link LoggerFactory} implementation that will
actually create a new Instance.
@since 0.8.5 */
public static Logger getLogger(String name, LoggerFactory factory) {
return LogManager.getLogger(name, factory);
}
/**
* Log a message object with the {@link Level#TRACE TRACE} level.
*
* @param message the message object to log.
* @see #debug(Object) for an explanation of the logic applied.
* @since 1.3
*/
public void trace(Object message) {
if (repository.isDisabled(Level.TRACE_INT)) {
return;
}
if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.TRACE, message, null);
}
}
/**
* Log a message object with the <code>TRACE</code> level including the
* stack trace of the {@link Throwable}<code>t</code> passed as parameter.
*
* <p>
* See {@link #debug(Object)} form for more detailed information.
* </p>
*
* @param message the message object to log.
* @param t the exception to log, including its stack trace.
*/
public void trace(Object message, Throwable t) {
if (repository.isDisabled(Level.TRACE_INT)) {
return;
}
if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
forcedLog(FQCN, Level.TRACE, message, t);
}
}
/**
* Log a message with the <code>TRACE</code> level with message formatting
* done according to the value of <code>messagePattern</code> and
* <code>arg</code> parameters.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg The argument to replace the formatting element, i,e,
* the '{}' pair within <code>messagePattern</code>.
* @since 1.3
*/
public void trace(Object messagePattern, Object arg) {
if (repository.isDisabled(Level.TRACE_INT)) {
return;
}
if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
if (messagePattern instanceof String){
String msgStr = (String) messagePattern;
msgStr = MessageFormatter.format(msgStr, arg);
forcedLog(FQCN, Level.TRACE, msgStr, null);
} else {
// To be failsafe, we handle the case where 'messagePattern' is not
// a String. Unless the user makes a mistake, this should never happen.
forcedLog(FQCN, Level.TRACE, messagePattern, null);
}
}
}
/**
* Log a message with the <code>TRACE</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void trace(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.TRACE_INT)) {
return;
}
if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.TRACE, messagePattern, null);
}
}
/**
* Log a message with the <code>DEBUG</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void debug(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.DEBUG_INT)) {
return;
}
if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.DEBUG, messagePattern, null);
}
}
/**
* Log a message with the <code>INFO</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void info(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.INFO_INT)) {
return;
}
if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.INFO, messagePattern, null);
}
}
/**
* Log a message with the <code>WARN</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void warn(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.WARN_INT)) {
return;
}
if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.WARN, messagePattern, null);
}
}
/**
* Log a message with the <code>ERROR</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void error(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.ERROR_INT)) {
return;
}
if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.ERROR, messagePattern, null);
}
}
/**
* Log a message with the <code>FATAL</code> level with message formatting
* done according to the messagePattern and the arguments arg1 and arg2.
* <p>
* This form avoids superflous parameter construction. Whenever possible,
* you should use this form instead of constructing the message parameter
* using string concatenation.
*
* @param messagePattern The message pattern which will be parsed and formatted
* @param arg1 The first argument to replace the first formatting element
* @param arg2 The second argument to replace the second formatting element
* @since 1.3
*/
public void fatal(String messagePattern, Object arg1, Object arg2) {
if (repository.isDisabled(Level.FATAL_INT)) {
return;
}
if (Level.FATAL.isGreaterOrEqual(this.getEffectiveLevel())) {
messagePattern = MessageFormatter.format(messagePattern, arg1, arg2);
forcedLog(FQCN, Level.FATAL, messagePattern, null);
}
}
}
// End of class: Logger.java