X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Flogging%2Fbridge%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Flogging%2Fbridge%2Finternal%2FActivator.java;fp=opendaylight%2Flogging%2Fbridge%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Flogging%2Fbridge%2Finternal%2FActivator.java;h=90908ef7fa96fcda1d95bec7afae8d52f89ffdb6;hb=42210c03b0a4c54706320ba9f55794c0abd4d201;hp=0000000000000000000000000000000000000000;hpb=7576b38152b393793b1c9ec3df0ff86685f95236;p=controller.git diff --git a/opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java b/opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java new file mode 100644 index 0000000000..90908ef7fa --- /dev/null +++ b/opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java @@ -0,0 +1,80 @@ + +/* + * Copyright (c) 2013 Cisco Systems, Inc. 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 http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.logging.bridge.internal; + +import org.osgi.service.log.LogEntry; +import java.util.Enumeration; +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.ServiceRegistration; +import org.osgi.framework.ServiceReference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.ILoggerFactory; +import org.osgi.service.log.LogReaderService; + +public class Activator implements BundleActivator { + private LogListenerImpl listener = null; + private Logger log = null; + + @Override + public void start(BundleContext context) { + // Lets trigger the resolution of the slf4j logger factory + ILoggerFactory f = LoggerFactory.getILoggerFactory(); + + // Now retrieve a logger for the bridge + log = f + .getLogger("org.opendaylight.controller.logging.bridge.OSGI2SLF4J"); + + if (this.log != null) { + this.listener = new LogListenerImpl(log); + + ServiceReference service = null; + service = context.getServiceReference(LogReaderService.class + .getName()); + if (service != null) { + LogReaderService reader = (LogReaderService) context + .getService(service); + if (reader == null) { + this.log.error("Cannot register the LogListener because " + + "cannot retrive LogReaderService"); + } + reader.addLogListener(this.listener); + // Now lets walk all the exiting messages + Enumeration entries = reader.getLog(); + if (entries != null) { + while (entries.hasMoreElements()) { + LogEntry entry = (LogEntry) entries.nextElement(); + this.listener.logged(entry); + } + } + } else { + this.log.error("Cannot register the LogListener because " + + "cannot retrive LogReaderService"); + } + } else { + System.err + .println("Could not initialize the logging bridge subsytem"); + } + } + + @Override + public void stop(BundleContext context) { + ServiceReference service = null; + service = context.getServiceReference(LogReaderService.class.getName()); + if (service != null) { + LogReaderService reader = (LogReaderService) service; + reader.removeLogListener(this.listener); + } + + this.listener = null; + this.log = null; + } +}