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
ComponentBase.java
/*
* Created on Jan 3, 2005
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.log4j.spi;
import org.apache.log4j.ULogger;
import org.apache.log4j.spi.NOPULogger;
import org.apache.log4j.spi.SimpleULogger;
/**
* Most log4j components derive from this class.
*
* @author Ceki Gulcu
* @since 1.3
*/
public class ComponentBase implements Component {
private final static int ERROR_COUNT_LIMIT = 3;
protected LoggerRepository repository;
private ULogger logger;
private int errorCount = 0;
/**
* Called by derived classes when they deem that the component has recovered
* from an erroneous state.
*/
protected void resetErrorCount() {
errorCount = 0;
}
/**
* Set the owning repository. The owning repository cannot be set more than
* once.
*/
public void setLoggerRepository(LoggerRepository repository) {
if(this.repository == null) {
this.repository = repository;
} else if(this.repository != repository) {
throw new IllegalStateException("Repository has been already set");
}
}
/**
* Return the {@link LoggerRepository} this component is attached to.
*
* @return Owning LoggerRepository
*/
protected LoggerRepository getLoggerRepository() {
return repository;
}
/**
* Return an instance specific logger to be used by the component itself.
* This logger is not intended to be accessed by the end-user, hence the
* protected keyword.
*
* <p>In case the repository for this component is not set,
* this implementations returns a {@link SimpleULogger} instance.
*
* @return A ULogger instance.
*/
protected ULogger getLogger() {
if(logger == null) {
if(repository != null) {
logger = repository.getLogger(this.getClass().getName());
} else {
logger = SimpleULogger.getLogger(this.getClass().getName());
}
} else if(repository != null && !(logger instanceof org.apache.log4j.Logger)){
// if repository is set but logger is not an instance of Logger, we
// could reset the logger, as in the line below. However, we chose not to
// do so in order to make the bigger problem more apparent.
// logger = repository.getLogger(this.getClass().getName());
}
return logger;
}
/**
* Frequently called methods in log4j components can invoke this method in
* order to avoid flooding the output when logging lasting error conditions.
*
* @return a regular logger, or a NOPLogger if called too frequently.
*/
protected ULogger getNonFloodingLogger() {
if(errorCount++ >= ERROR_COUNT_LIMIT) {
return NOPULogger.NOP_LOGGER;
} else {
return getLogger();
}
}
}