org.norther.tammi.core.logger
Class AbstractThreadedLogger

java.lang.Object
  extended by org.norther.tammi.core.base.Adaptee
      extended by org.norther.tammi.core.config.DefaultConfigurable
          extended by org.norther.tammi.core.config.DefaultConfigurableFactory<Log>
              extended by org.norther.tammi.core.logger.AbstractLogger
                  extended by org.norther.tammi.core.logger.AbstractThreadedLogger
All Implemented Interfaces:
Serializable, Runnable, EventListener, NotificationBroadcaster, NotificationEmitter, Localizer, TraceListener, Manageable, MBeanDelegate, ObjectFactory<Log>, Refreshable, Startable, CacheClient<String,String>, Configurable, ConfigurableFactory<Log>, ResourceMap, Logger, ThreadedLogger, Executable
Direct Known Subclasses:
JDK4Logger, Log4JLogger

public abstract class AbstractThreadedLogger
extends AbstractLogger
implements ThreadedLogger

An abstract implementation of ThreadedLogger.

Version:
$Id: AbstractThreadedLogger.java,v 1.7 2009/09/28 15:08:45 cvsimp Exp $
Author:
Ilkka Priha
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.norther.tammi.core.config.DefaultConfigurable
DefaultConfigurable.Modified
 
Field Summary
 
Fields inherited from class org.norther.tammi.core.logger.AbstractLogger
traceOn
 
Fields inherited from class org.norther.tammi.core.base.Adaptee
ADAPTEE_NOTIF_DESCRIPTION, ADAPTEE_NOTIFICATIONS
 
Fields inherited from interface org.norther.tammi.acorn.locale.Localizer
ANY_NAME
 
Constructor Summary
AbstractThreadedLogger()
          Constructs a new logger.
 
Method Summary
 void flush()
          Flushes queued log entries.
protected  void flush(BlockingQueue<LogEntry> queue)
          Flushes the log buffer.
 ObjectName getExecutorName()
          Gets the the executor of this executable.
 boolean isStarted()
          Checks whether the startable has been started.
protected  void push(LogEntry entry)
          Pushes a log entry into a buffer.
 void run()
          Polls the log entry queue and writes entries to the log.
 void setBufferSize(int size)
          Sets the log buffer size.
 void setExecutorName(ObjectName executor)
          Sets the executor of this executable.
 void start()
          Starts the MBean.
 void stop()
          Stops the MBean.
 void unmanaged()
          This method is called when the implementing adaptee is unmanaged either during pre-deregistration of the corresponding adapter MBean or just before it is explicitly removed from the adapter MBean during run-time.
protected abstract  void write(LogEntry entry)
          Writes the log entry to the log.
 
Methods inherited from class org.norther.tammi.core.logger.AbstractLogger
activate, addAppender, addFilter, addResourceBundleName, addResourceBundleNames, clearAppenders, clearCached, clearFilters, clearResourceBundleNames, clearResourceBundleNames, expireCached, expireFraction, getAdditivity, getAnonymousLogger, getAppenderNames, getBufferSize, getCache, getDefaultBaseName, getFallbackResourcesName, getFilters, getInstance, getLevel, getLevel, getLocalizedMessage, getLocalizedMessage, getLogClassName, getLogEntryEncoding, getLoggerName, getLoggerName, getNativeLogger, getPlugInBaseName, getPollingInterval, getRefreshed, getResourceBundleNames, getResourceFinderName, getSharedCacheName, getTimeZoneId, isCachingDisabled, isDefaultLogFactory, isLoaderSupported, isStackTrace, isStaticTrace, isSystemErrLogged, isSystemOutLogged, log, log, log, log, log, log, log, log, log, log, postmanaged, qualifierSet, refresh, removeAppender, removeCache, removeFilter, removeResourceBundleName, resolveLocalizedObject, resolveLocalizedResource, resolveLocalizedString, resolveLocalizedStrings, resolveResourceBundle, resolveResourceBundleName, setAdditivity, setCachingDisabled, setDefaultBaseName, setDefaultLogFactory, setFallbackResourcesName, setFilters, setLevel, setLevel, setLevelAsString, setLevelAsString, setLogClassName, setLogEntryEncoding, setLoggerName, setPollingInterval, setResourceBundleName, setResourceBundleNames, setResourceFinderName, setSharedCacheName, setStackTrace, setStaticTrace, setSystemErrLogged, setSystemOutLogged, setTimeZoneId
 
Methods inherited from class org.norther.tammi.core.config.DefaultConfigurableFactory
getInstance, getInstance, getInstance
 
Methods inherited from class org.norther.tammi.core.config.DefaultConfigurable
addProperty, addProperty, addPropertyFilePath, addPropertyFilePath, checkConfiguration, clearProperties, containsProperty, getConfigKey, getConfiguration, getModifiedState, getProperties, getProperty, getPropertyFilePath, getPropertyFilePaths, indexOfProperty, loadConfiguration, loadConfiguration, loadConfiguration, modified, propertyMap, propertyMap, removeProperty, removeProperty, removePropertyFilePath, setConfigKey, setModifiedState, setProperties, setProperty, setPropertyFilePath, setPropertyFilePath, setPropertyFilePaths, setPropertyFilePaths, storeProperties, validateConfiguration
 
Methods inherited from class org.norther.tammi.core.base.Adaptee
addAdaptee, addNotificationListener, getAttributeSupport, getBroker, getCanonicalName, getDomain, getFactory, getLoader, getLog, getLog, getMBean, getMBeanServer, getNotificationInfo, getObjectName, getRegistrationTime, getSequenceNumber, hasListeners, isRegistered, premanaged, removeNotificationListener, removeNotificationListener, sendNotification, sendNotification, sendNotification, sendNotification, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.norther.tammi.core.logger.Logger
addAppender, addFilter, clearAppenders, clearFilters, getAdditivity, getAppenderNames, getBufferSize, getFilters, getLevel, getLevel, getLocalizedMessage, getLocalizedMessage, getLogClassName, getLogEntryEncoding, getLoggerClassName, getLoggerName, getPollingInterval, getTimeZoneId, isDefaultLogFactory, isLogEnabled, isLogEnabled, isStackTrace, isStaticTrace, isSystemErrLogged, isSystemOutLogged, log, log, log, log, log, log, log, log, log, log, release, removeAppender, removeFilter, setAdditivity, setDefaultLogFactory, setFilters, setLevel, setLevel, setLevelAsString, setLevelAsString, setLogClassName, setLogEntryEncoding, setLoggerName, setPollingInterval, setStackTrace, setStaticTrace, setSystemErrLogged, setSystemOutLogged, setTimeZoneId
 
Methods inherited from interface org.norther.tammi.core.base.ObjectFactory
getInstance, getInstance, getInstance, getInstance, isLoaderSupported
 
Methods inherited from interface org.norther.tammi.core.config.Configurable
addProperty, addProperty, addPropertyFilePath, addPropertyFilePath, clearProperties, containsProperty, getConfigKey, getProperties, getProperty, getPropertyFilePath, getPropertyFilePaths, indexOfProperty, propertyMap, propertyMap, removeProperty, removeProperty, removePropertyFilePath, setConfigKey, setProperties, setProperty, setPropertyFilePath, setPropertyFilePath, setPropertyFilePaths, setPropertyFilePaths, storeProperties
 
Methods inherited from interface org.norther.tammi.core.locale.ResourceMap
addResourceBundleName, addResourceBundleNames, clearResourceBundleNames, clearResourceBundleNames, getDefaultBaseName, getFallbackResourcesName, getPlugInBaseName, getResourceBundleNames, getResourceFinderName, qualifierSet, removeResourceBundleName, resolveResourceBundle, resolveResourceBundleName, setDefaultBaseName, setFallbackResourcesName, setResourceBundleName, setResourceBundleNames, setResourceFinderName
 
Methods inherited from interface org.norther.tammi.acorn.locale.Localizer
resolveLocalizedObject, resolveLocalizedResource, resolveLocalizedString, resolveLocalizedStrings
 
Methods inherited from interface org.norther.tammi.core.cache.CacheClient
clearCached, expireCached, expireFraction, getCache, getSharedCacheName, isCachingDisabled, removeCache, setCachingDisabled, setSharedCacheName
 
Methods inherited from interface org.norther.tammi.core.base.Refreshable
getRefreshed, refresh
 

Constructor Detail

AbstractThreadedLogger

public AbstractThreadedLogger()
Constructs a new logger.

Method Detail

unmanaged

public void unmanaged()
               throws Exception
Description copied from interface: Manageable
This method is called when the implementing adaptee is unmanaged either during pre-deregistration of the corresponding adapter MBean or just before it is explicitly removed from the adapter MBean during run-time.

Specified by:
unmanaged in interface Manageable
Overrides:
unmanaged in class AbstractLogger
Throws:
Exception - if the adaptee refused to be unmanaged.

getExecutorName

public ObjectName getExecutorName()
Description copied from interface: Executable
Gets the the executor of this executable.

Specified by:
getExecutorName in interface Executable
Returns:
the object name of the executor or a query.

setExecutorName

public void setExecutorName(ObjectName executor)
Description copied from interface: Executable
Sets the executor of this executable. If it is not set, the default one will be used.

Note that it will be taken into use after next start.

Specified by:
setExecutorName in interface Executable
Parameters:
executor - the object name of the executor or a query.

isStarted

public boolean isStarted()
Description copied from interface: Startable
Checks whether the startable has been started.

Specified by:
isStarted in interface Startable
Returns:
true if started, otherwise false.

start

public void start()
           throws Exception
Description copied from interface: Startable
Starts the MBean.

Specified by:
start in interface Startable
Throws:
Exception - if start fails.

stop

public void stop()
Description copied from interface: Startable
Stops the MBean.

Specified by:
stop in interface Startable

run

public void run()
Polls the log entry queue and writes entries to the log.

Specified by:
run in interface Runnable

setBufferSize

public void setBufferSize(int size)
Description copied from interface: Logger
Sets the log buffer size.

Specified by:
setBufferSize in interface Logger
Overrides:
setBufferSize in class AbstractLogger
Parameters:
size - the buffer size as a number of log entries.

flush

public void flush()
Description copied from interface: Logger
Flushes queued log entries.

Specified by:
flush in interface Logger
Overrides:
flush in class AbstractLogger

push

protected void push(LogEntry entry)
Pushes a log entry into a buffer.

Specified by:
push in class AbstractLogger
Parameters:
entry - a log entry.

flush

protected void flush(BlockingQueue<LogEntry> queue)
Flushes the log buffer.

Parameters:
queue - the entry queue.

write

protected abstract void write(LogEntry entry)
Writes the log entry to the log.

Parameters:
entry - the log entry.


Copyright © 2004 The Norther Organization. All rights reserved.