2008/4/28, Guillaume Nodet <[EMAIL PROTECTED]>: > I'm trying to create a bundle that would be able to store the last log > entries and display them somehow. > I first looked at the Osgi log service api, but the informations are > not sufficient imho, so I'm now trying to retrieve the log4j events > directly.
I use something like this: import java.util.ArrayList; import java.util.List; import org.osgi.framework.BundleContext; import org.osgi.service.log.LogEntry; import org.osgi.service.log.LogListener; import org.osgi.util.tracker.ServiceTracker; public class LogAnalyzer { private ServiceTracker logReaderServiceTracker; private List<LogEntry> allLogs = new ArrayList<LogEntry>(); public void open(BundleContext context) { LogListener logListener = new LogListener() { @Override public void logged(LogEntry logEntry) { try { processLog(logEntry); } catch (RuntimeException e) { System.err.println("RuntimeException in LogAnalyzer.processLog:" + e.getMessage()); e.printStackTrace(System.err); } catch (Exception e) { System.err.println("Exception in LogAnalyzer.processLog:" + e.getMessage()); e.printStackTrace(System.err); } } }; logReaderServiceTracker = new LogReaderServiceTracker(context, logListener); logReaderServiceTracker.open(); } public void close() { logReaderServiceTracker.close(); } private void processLog(LogEntry logEntry) { allLogs.add(logEntry); } } -- Damian _______________________________________________ general mailing list general@lists.ops4j.org http://lists.ops4j.org/mailman/listinfo/general