diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java | 196 |
1 files changed, 181 insertions, 15 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java index 606a52b90..ab8dbb213 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/log/ExtendedLogServiceImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2016 Cognos Incorporated, IBM Corporation and others + * Copyright (c) 2006, 2012 Cognos Incorporated, IBM Corporation and others * All rights reserved. This program and the accompanying materials are made * available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at @@ -8,21 +8,23 @@ package org.eclipse.osgi.internal.log; import java.util.HashMap; +import java.util.Map; import org.eclipse.equinox.log.ExtendedLogService; import org.eclipse.equinox.log.Logger; import org.osgi.framework.Bundle; import org.osgi.framework.ServiceReference; -import org.osgi.service.log.LogService; -public class ExtendedLogServiceImpl implements ExtendedLogService, LogService { +public class ExtendedLogServiceImpl implements ExtendedLogService { private final ExtendedLogServiceFactory factory; private volatile Bundle bundle; - private final HashMap<String, Logger> loggerCache = new HashMap<>(); + private final Map<Class<? extends org.osgi.service.log.Logger>, Map<String, Logger>> loggerCache = new HashMap<>(); public ExtendedLogServiceImpl(ExtendedLogServiceFactory factory, Bundle bundle) { this.factory = factory; this.bundle = bundle; + loggerCache.put(org.osgi.service.log.Logger.class, new HashMap<String, Logger>()); + loggerCache.put(org.osgi.service.log.FormatterLogger.class, new HashMap<String, Logger>()); } public void log(int level, String message) { @@ -40,7 +42,7 @@ public class ExtendedLogServiceImpl implements ExtendedLogService, LogService { @SuppressWarnings("rawtypes") public void log(ServiceReference sr, int level, String message, Throwable exception) { - getLogger(null).log(sr, level, message, exception); + getLogger((String) null).log(sr, level, message, exception); } public void log(Object context, int level, String message) { @@ -48,16 +50,11 @@ public class ExtendedLogServiceImpl implements ExtendedLogService, LogService { } public void log(Object context, int level, String message, Throwable exception) { - getLogger(null).log(context, level, message, exception); + getLogger((String) null).log(context, level, message, exception); } - public synchronized Logger getLogger(String name) { - Logger logger = loggerCache.get(name); - if (logger == null) { - logger = new LoggerImpl(this, name); - loggerCache.put(name, logger); - } - return logger; + public Logger getLogger(String name) { + return (Logger) getLogger(name, org.osgi.service.log.Logger.class); } public Logger getLogger(Bundle logBundle, String name) { @@ -70,11 +67,11 @@ public class ExtendedLogServiceImpl implements ExtendedLogService, LogService { } public String getName() { - return getLogger(null).getName(); + return getLogger((String) null).getName(); } public boolean isLoggable(int level) { - return getLogger(null).isLoggable(level); + return getLogger((String) null).isLoggable(level); } // package private methods called from Logger @@ -90,4 +87,173 @@ public class ExtendedLogServiceImpl implements ExtendedLogService, LogService { void setBundle(Bundle bundle) { this.bundle = bundle; } + + @Override + public org.osgi.service.log.Logger getLogger(Class<?> clazz) { + return getLogger(clazz.getName()); + } + + @Override + public synchronized <L extends org.osgi.service.log.Logger> L getLogger(String name, Class<L> loggerType) { + Map<String, Logger> loggers = loggerCache.get(loggerType); + if (loggers == null) { + throw new IllegalArgumentException(loggerType.getName()); + } + Logger logger = loggers.get(name); + if (logger == null) { + logger = new FormatterLoggerImpl(this, name); + loggers.put(name, logger); + } + return loggerType.cast(logger); + } + + @Override + public <L extends org.osgi.service.log.Logger> L getLogger(Class<?> clazz, Class<L> loggerType) { + return getLogger(clazz.getName(), loggerType); + } + + @Override + public boolean isTraceEnabled() { + return getLogger((String) null).isTraceEnabled(); + } + + @Override + public void trace(String message) { + getLogger((String) null).trace(message); + } + + @Override + public void trace(String format, Object arg) { + getLogger((String) null).trace(format, arg); + } + + @Override + public void trace(String format, Object arg1, Object arg2) { + getLogger((String) null).trace(format, arg1, arg2); + } + + @Override + public void trace(String format, Object... arguments) { + getLogger((String) null).trace(format, arguments); + } + + @Override + public boolean isDebugEnabled() { + return getLogger((String) null).isDebugEnabled(); + } + + @Override + public void debug(String message) { + getLogger((String) null).debug(message); + } + + @Override + public void debug(String format, Object arg) { + getLogger((String) null).debug(format, arg); + } + + @Override + public void debug(String format, Object arg1, Object arg2) { + getLogger((String) null).debug(format, arg1, arg2); + } + + @Override + public void debug(String format, Object... arguments) { + getLogger((String) null).debug(format, arguments); + } + + @Override + public boolean isInfoEnabled() { + return getLogger((String) null).isInfoEnabled(); + } + + @Override + public void info(String message) { + getLogger((String) null).info(message); + } + + @Override + public void info(String format, Object arg) { + getLogger((String) null).info(format, arg); + } + + @Override + public void info(String format, Object arg1, Object arg2) { + getLogger((String) null).info(format, arg1, arg2); + } + + @Override + public void info(String format, Object... arguments) { + getLogger((String) null).info(format, arguments); + } + + @Override + public boolean isWarnEnabled() { + return getLogger((String) null).isWarnEnabled(); + } + + @Override + public void warn(String message) { + getLogger((String) null).warn(message); + } + + @Override + public void warn(String format, Object arg) { + getLogger((String) null).warn(format, arg); + } + + @Override + public void warn(String format, Object arg1, Object arg2) { + getLogger((String) null).warn(format, arg1, arg2); + } + + @Override + public void warn(String format, Object... arguments) { + getLogger((String) null).warn(format, arguments); + } + + @Override + public boolean isErrorEnabled() { + return getLogger((String) null).isErrorEnabled(); + } + + @Override + public void error(String message) { + getLogger((String) null).error(message); + } + + @Override + public void error(String format, Object arg) { + getLogger((String) null).error(format, arg); + } + + @Override + public void error(String format, Object arg1, Object arg2) { + getLogger((String) null).error(format, arg1, arg2); + } + + @Override + public void error(String format, Object... arguments) { + getLogger((String) null).error(format, arguments); + } + + @Override + public void audit(String message) { + getLogger((String) null).audit(message); + } + + @Override + public void audit(String format, Object arg) { + getLogger((String) null).audit(format, arg); + } + + @Override + public void audit(String format, Object arg1, Object arg2) { + getLogger((String) null).audit(format, arg1, arg2); + } + + @Override + public void audit(String format, Object... arguments) { + getLogger((String) null).audit(format, arguments); + } } |