/** * (C) Copyright 2013 Jabylon (http://www.jabylon.org) 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.jabylon.log.viewer.pages.util; import java.util.Collections; import java.util.List; import org.apache.wicket.util.file.File; import org.ops4j.pax.logging.PaxLoggingService; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.util.tracker.ServiceTracker; public class PaxLogUtil extends LogAccess { private ServiceTracker<PaxLoggingService, PaxLoggingService> tracker; public PaxLogUtil() { Bundle bundle = FrameworkUtil.getBundle(getClass()); BundleContext context = bundle.getBundleContext(); tracker = new ServiceTracker<PaxLoggingService,PaxLoggingService>(context, PaxLoggingService.class, null); tracker.open(); } @Override public List<LogFile> getLogFiles() { File logFile = new File(System.getProperty("karaf.data"),"log/karaf.log"); LogFile logFileInfo = new LogFile(); logFileInfo.setLocation(logFile.getAbsolutePath()); return Collections.singletonList(logFileInfo); } @Override public LogLevel getLogLevel() { int logLevel = getManager().getLogLevel(); LogLevel level = mapLevel(logLevel); return level; } private LogLevel mapLevel(int logLevel) { switch (logLevel) { case PaxLoggingService.LOG_DEBUG: return LogLevel.DEBUG; case PaxLoggingService.LOG_ERROR: return LogLevel.ERROR; case PaxLoggingService.LOG_INFO: return LogLevel.INFO; case PaxLoggingService.LOG_WARNING: return LogLevel.WARN; default: return LogLevel.INFO; } } @Override public void setLogLevel(LogLevel level) { //TODO: not yet implemented } private PaxLoggingService getManager() { return tracker.getService(); } }