org.oddjob.logging.cache
Class LogArchiveImpl

java.lang.Object
  extended by org.oddjob.logging.cache.LogArchiveImpl
All Implemented Interfaces:
LogArchive, LogEventSink

public class LogArchiveImpl
extends Object
implements LogArchive, LogEventSink

A log archive. This archives events and supports listeners.

Author:
Rob Gordon

Constructor Summary
LogArchiveImpl(String archive, int maxHistory)
          Constructor.
 
Method Summary
 void addEvent(LogLevel level, String line)
          Add an event to this archive.
 void addListener(LogListener l, LogLevel level, long last, int history)
          Add a listener.
 String getArchive()
          Get the archive name.
 long getLastMessageNumber()
          Get the last message number in this archive.
 int getMaxHistory()
          Get the naximum number archive history lines supported.
 boolean removeListener(LogListener l)
          Remove a listener.
 LogEvent[] retrieveEvents(long from, int max)
          Retrieve events from the archive.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogArchiveImpl

public LogArchiveImpl(String archive,
                      int maxHistory)
Constructor.

Parameters:
maxHistory - The maximum history lines.
Method Detail

getLastMessageNumber

public long getLastMessageNumber()
Get the last message number in this archive.

Specified by:
getLastMessageNumber in interface LogArchive
Returns:
The last message number.

addEvent

public void addEvent(LogLevel level,
                     String line)
Add an event to this archive.

Specified by:
addEvent in interface LogEventSink
Parameters:
level - The level.
line - The message.

retrieveEvents

public LogEvent[] retrieveEvents(long from,
                                 int max)
Retrieve events from the archive. The most recent events are retrieved first.

Specified by:
retrieveEvents in interface LogArchive
Parameters:
from - From message number
max - The maximum number to retreive.
Returns:
The events.

addListener

public void addListener(LogListener l,
                        LogLevel level,
                        long last,
                        int history)
Add a listener.

Specified by:
addListener in interface LogArchive
Parameters:
l - The listener.
level - The level.
last - The last message number this listener requires.
history - The maximum lines this listener requires.

removeListener

public boolean removeListener(LogListener l)
Remove a listener.

Specified by:
removeListener in interface LogArchive
Parameters:
l - The listener.

getArchive

public String getArchive()
Get the archive name.

Specified by:
getArchive in interface LogArchive
Returns:
The archive name.

getMaxHistory

public int getMaxHistory()
Get the naximum number archive history lines supported.

Specified by:
getMaxHistory in interface LogArchive
Returns:
The number of lines.