Package org.apache.felix.framework

# Class Logger

java.lang.Object
org.apache.felix.framework.Logger

All Implemented Interfaces:
  `EventListener`, `ServiceListener`

public class Logger extends Object implements ServiceListener

This class mimics the standard OSGi `LogService` interface. An instance of this class is used by the framework for all logging. By default this class logs messages to standard out. The log level can be set to control the amount of logging performed, where a higher number results in more logging. A log level of zero turns off logging completely.

The log levels match those specified in the OSGi Log Service (i.e., 1 = error, 2 = warning, 3 = information, and 4 = debug). The default value is 1.

This class also uses the System Bundle's context to track log services and will use the highest ranking log service, if present, as a back end instead of printing to standard out. The class uses reflection to invoking the log service's method to avoid a dependency on the log interface.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`LOG_DEBUG`
`static final int`
`LOG_ERROR`
`static final int`
`LOG_INFO`
`static final int`
`LOG_WARNING`

## Constructor Summary

Constructors
Constructor
Description
`Logger()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doLog(Bundle bundle, ServiceReference sr, int level, String msg, Throwable throwable)`
`final int`
`getLogLevel()`
`final void`
`log(int level, String msg)`
`final void`
`log(int level, String msg, Throwable throwable)`
`final void`
`log(Bundle bundle, int level, String msg)`
`final void`
`log(Bundle bundle, int level, String msg, Throwable throwable)`
`final void`
`log(ServiceReference sr, int level, String msg)`
`final void`
`log(ServiceReference sr, int level, String msg, Throwable throwable)`
`final void`
`serviceChanged(ServiceEvent event)`
This method implements the callback for the ServiceListener interface.
`final void`
`setLogLevel(int i)`
`protected void`
`setSystemBundleContext(BundleContext context)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### LOG_ERROR

public static final int LOG_ERROR

See Also:
  - Constant Field Values

### LOG_WARNING

public static final int LOG_WARNING

See Also:
  - Constant Field Values

### LOG_INFO

public static final int LOG_INFO

See Also:
  - Constant Field Values

### LOG_DEBUG

public static final int LOG_DEBUG

See Also:
  - Constant Field Values

## Constructor Details

### Logger

public Logger()

## Method Details

### setLogLevel

public final void setLogLevel(int i)

### getLogLevel

public final int getLogLevel()

### setSystemBundleContext

protected void setSystemBundleContext(BundleContext context)

### log

public final void log(int level, String msg)

### log

public final void log(int level, String msg, Throwable throwable)

### log

public final void log(ServiceReference sr, int level, String msg)

### log

public final void log(ServiceReference sr, int level, String msg, Throwable throwable)

### log

public final void log(Bundle bundle, int level, String msg)

### log

public final void log(Bundle bundle, int level, String msg, Throwable throwable)

### doLog

protected void doLog(Bundle bundle, ServiceReference sr, int level, String msg, Throwable throwable)

### serviceChanged

public final void serviceChanged(ServiceEvent event)
This method implements the callback for the ServiceListener interface. It is public as a byproduct of implementing the interface and should not be called directly. This method tracks run-time changes to log service availability. If the log service being used by the framework's logging mechanism goes away, then this will try to find an alternative. If a higher ranking log service is registered, then this will switch to the higher ranking log service.

Specified by:
  `serviceChanged` in interface `ServiceListener`
Parameters:
  `event` - The `ServiceEvent` object.