/**
* Installs the ThreadLogManager in this system.
* <p>
* Note that this can fail if some other framework has done a call to LogManager.setRepositorySelector with a guard already.
*
* @param logMessageModifier
* optional implementation of LogMessageModifier which allows messages to be modified should they be affected by a threadlocal loglevel overwrite. This
* allows for example for messages to be prepended with a token so that they can be easier found in the log
*/
void install(final LogMessageModifier logMessageModifier) {
try {
final LoggerFactory loggerFactory = new LoggerFactory() {
@SuppressWarnings("synthetic-access")
@Override
public Logger makeNewLoggerInstance(String name) {
return new ThreadLocalAwareLogger(name, threadLocalLogLevel_, logMessageModifier);
}
};
final Logger originalRootLogger = LogManager.getRootLogger();
final LoggerRepository parentRepository = originalRootLogger.getLoggerRepository();
final LoggerRepository repository = new ThreadLocalAwareLoggerRepository(originalRootLogger, parentRepository, loggerFactory);
LogManager.setRepositorySelector(new RepositorySelector() {
@Override
public LoggerRepository getLoggerRepository() {
return repository;
}
}, guard);
} catch (IllegalArgumentException re) {
// thrown by LogManager.setRepositorySelector
log.error("Could not install ThreadLocalLogLevelManager", re);
}
}
ThreadLocalLogLevelManager.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:olat
作者:
评论列表
文章目录