Search in sources :

Example 1 with LoggerContext

use of org.osgi.service.log.admin.LoggerContext in project rt.equinox.framework by eclipse.

the class ExtendedLogServiceImpl method getLogger.

@Override
public <L extends org.osgi.service.log.Logger> L getLogger(String name, Class<L> loggerType) {
    if (name == null) {
        // $NON-NLS-1$
        name = "LogService";
    }
    LoggerImpl logger = null;
    Map<String, LoggerImpl> loggers = null;
    factory.contextsLock.readLock().lock();
    try {
        loggers = loggerCache.get(loggerType);
        if (loggers == null) {
            throw new IllegalArgumentException(loggerType.getName());
        }
        logger = loggers.get(name);
    } finally {
        factory.contextsLock.readLock().unlock();
    }
    if (logger == null) {
        LoggerContext loggerContext = factory.loggerContextTargetMap.getEffectiveLoggerContext(bundle);
        if (loggerType == FormatterLogger.class) {
            logger = new FormatterLoggerImpl(this, name, loggerContext);
        } else if (loggerType == org.osgi.service.log.Logger.class) {
            logger = new LoggerImpl(this, name, loggerContext);
        } else {
            throw new IllegalArgumentException(loggerType.getName());
        }
        factory.contextsLock.writeLock().lock();
        try {
            LoggerImpl existing = loggers.get(name);
            if (existing == null) {
                loggers.put(name, logger);
            } else {
                logger = existing;
            }
        } finally {
            factory.contextsLock.writeLock().unlock();
        }
    }
    return loggerType.cast(logger);
}
Also used : Logger(org.eclipse.equinox.log.Logger) FormatterLogger(org.osgi.service.log.FormatterLogger) LoggerContext(org.osgi.service.log.admin.LoggerContext) EquinoxLoggerContext(org.eclipse.osgi.internal.log.ExtendedLogServiceFactory.EquinoxLoggerContext)

Example 2 with LoggerContext

use of org.osgi.service.log.admin.LoggerContext in project rt.equinox.framework by eclipse.

the class EquinoxLogWriter method applyLogLevel.

void applyLogLevel() {
    if (loggerAdmin == null) {
        return;
    }
    LoggerContext rootContext = loggerAdmin.getLoggerContext(null);
    Map<String, LogLevel> rootLevels = rootContext.getLogLevels();
    rootLevels.put(loggerName, getLogLevel());
    rootContext.setLogLevels(rootLevels);
}
Also used : LoggerContext(org.osgi.service.log.admin.LoggerContext)

Aggregations

LoggerContext (org.osgi.service.log.admin.LoggerContext)2 Logger (org.eclipse.equinox.log.Logger)1 EquinoxLoggerContext (org.eclipse.osgi.internal.log.ExtendedLogServiceFactory.EquinoxLoggerContext)1 FormatterLogger (org.osgi.service.log.FormatterLogger)1