Class LoggerComposite<T>

java.lang.Object
org.refcodes.logger.LoggerComposite<T>
Type Parameters:
T - The type of the Record instances managed by the Logger.
All Implemented Interfaces:
Flushable, org.refcodes.component.Closable, org.refcodes.component.ComponentComposite, org.refcodes.component.Decomposeable, org.refcodes.component.Destroyable, org.refcodes.component.Flushable, org.refcodes.component.Initializable, org.refcodes.component.LifecycleComponent, org.refcodes.component.LinkComponent, org.refcodes.component.Openable, org.refcodes.component.Pausable, org.refcodes.component.Resumable, org.refcodes.component.Startable, org.refcodes.component.Stoppable, LogDecorator, Logger<T>, org.refcodes.mixin.Disposable, org.refcodes.mixin.Resetable

public class LoggerComposite<T> extends Object implements org.refcodes.component.ComponentComposite
The LoggerComposite is a ready to use implementation of a composite Logger extending the AbstractLoggerComposite.
See Also:
  • AbstractLoggerComposite
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.refcodes.component.Closable

    org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>

    Nested classes/interfaces inherited from interface org.refcodes.component.ComponentComposite

    org.refcodes.component.ComponentComposite.ExtendedComponentComposite<CTX extends Object,CON extends Object>

    Nested classes/interfaces inherited from interface org.refcodes.component.Decomposeable

    org.refcodes.component.Decomposeable.DecomposeAutomaton

    Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable

    org.refcodes.component.Destroyable.DestroyAutomaton

    Nested classes/interfaces inherited from interface org.refcodes.component.Flushable

    org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>

    Nested classes/interfaces inherited from interface org.refcodes.component.Initializable

    org.refcodes.component.Initializable.InitializeAutomaton, org.refcodes.component.Initializable.InitializeBuilder<B extends org.refcodes.component.Initializable.InitializeBuilder<B>>, org.refcodes.component.Initializable.UncheckedInitializable

    Nested classes/interfaces inherited from interface org.refcodes.component.LifecycleComponent

    org.refcodes.component.LifecycleComponent.LifecycleAutomaton, org.refcodes.component.LifecycleComponent.UncheckedLifecycleComponent

    Nested classes/interfaces inherited from interface org.refcodes.component.LinkComponent

    org.refcodes.component.LinkComponent.LinkAutomaton, org.refcodes.component.LinkComponent.LinkComponentBuilder<B extends org.refcodes.component.LinkComponent.LinkComponentBuilder<B>>

    Nested classes/interfaces inherited from interface org.refcodes.component.Openable

    org.refcodes.component.Openable.OpenAutomaton, org.refcodes.component.Openable.OpenBuilder<B extends org.refcodes.component.Openable.OpenBuilder<B>>

    Nested classes/interfaces inherited from interface org.refcodes.component.Pausable

    org.refcodes.component.Pausable.PauseAutomaton, org.refcodes.component.Pausable.PauseBuilder<B extends org.refcodes.component.Pausable.PauseBuilder<B>>, org.refcodes.component.Pausable.UncheckedPausable

    Nested classes/interfaces inherited from interface org.refcodes.component.Resumable

    org.refcodes.component.Resumable.ResumeAutomaton, org.refcodes.component.Resumable.ResumeBuilder<B extends org.refcodes.component.Resumable.ResumeBuilder<B>>, org.refcodes.component.Resumable.UncheckedResumable

    Nested classes/interfaces inherited from interface org.refcodes.component.Startable

    org.refcodes.component.Startable.StartAutomaton, org.refcodes.component.Startable.StartBuilder<B extends org.refcodes.component.Startable.StartBuilder<B>>, org.refcodes.component.Startable.UncheckedStartable

    Nested classes/interfaces inherited from interface org.refcodes.component.Stoppable

    org.refcodes.component.Stoppable.StopAutomaton, org.refcodes.component.Stoppable.StopBuilder<B extends org.refcodes.component.Stoppable.StopBuilder<B>>, org.refcodes.component.Stoppable.UncheckedStoppable
  • Constructor Summary

    Constructors
    Constructor
    Description
    LoggerComposite(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy, Logger<T>... aLoggers)
    Similar to the LoggerComposite(Logger...) with the additional option of determining the execution strategy of the state change request calls for the encapsulated Logger instances (as of ComponentComposite).
    LoggerComposite(Logger<T>... aLoggers)
    Instantiates a new LoggerComposite composed of the provided Logger instances.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    void
    void
    void
    void
    protected Collection<Logger<T>>
    Gets the loggers.
    void
    void
    log(org.refcodes.tabular.Record<? extends T> aRecord)
    Logs a Record.
    void
    void
    void
    void
    void
    void

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.refcodes.component.Closable

    closeIn, closeQuietly, closeUnchecked

    Methods inherited from interface org.refcodes.component.Flushable

    flushUnchecked, isFlushable

    Methods inherited from interface org.refcodes.component.Initializable

    initializeUnchecked

    Methods inherited from interface org.refcodes.logger.LogDecorator

    printHead, printSeparator, printTail

    Methods inherited from interface org.refcodes.component.Openable

    openUnchecked

    Methods inherited from interface org.refcodes.component.Pausable

    pauseUnchecked

    Methods inherited from interface org.refcodes.component.Resumable

    resumeUnchecked

    Methods inherited from interface org.refcodes.component.Startable

    startUnchecked

    Methods inherited from interface org.refcodes.component.Stoppable

    stopUnchecked
  • Constructor Details

    • LoggerComposite

      @SafeVarargs public LoggerComposite(Logger<T>... aLoggers)
      Instantiates a new LoggerComposite composed of the provided Logger instances.
      Parameters:
      aLoggers - the Logger instances populating this composite.
      See Also:
      • AbstractLoggerComposite(Logger...)
    • LoggerComposite

      @SafeVarargs public LoggerComposite(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy, Logger<T>... aLoggers)
      Similar to the LoggerComposite(Logger...) with the additional option of determining the execution strategy of the state change request calls for the encapsulated Logger instances (as of ComponentComposite).
      Parameters:
      aComponentExecutionStrategy - The strategy to be used when invoking a component's (encapsulated Logger instance's) state change request call (as of ComponentComposite).
      aLoggers - the Logger instances populating this composite.
  • Method Details

    • initialize

      public void initialize() throws org.refcodes.component.InitializeException
      Specified by:
      initialize in interface org.refcodes.component.Initializable
      Throws:
      org.refcodes.component.InitializeException
    • start

      public void start() throws org.refcodes.component.StartException
      Specified by:
      start in interface org.refcodes.component.Startable
      Throws:
      org.refcodes.component.StartException
    • pause

      public void pause() throws org.refcodes.component.PauseException
      Specified by:
      pause in interface org.refcodes.component.Pausable
      Throws:
      org.refcodes.component.PauseException
    • resume

      public void resume() throws org.refcodes.component.ResumeException
      Specified by:
      resume in interface org.refcodes.component.Resumable
      Throws:
      org.refcodes.component.ResumeException
    • stop

      public void stop() throws org.refcodes.component.StopException
      Specified by:
      stop in interface org.refcodes.component.Stoppable
      Throws:
      org.refcodes.component.StopException
    • decompose

      public void decompose()
      Specified by:
      decompose in interface org.refcodes.component.Decomposeable
    • flush

      public void flush() throws IOException
      Specified by:
      flush in interface Flushable
      Specified by:
      flush in interface org.refcodes.component.Flushable
      Throws:
      IOException
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.refcodes.component.Destroyable
    • reset

      public void reset()
      Specified by:
      reset in interface org.refcodes.mixin.Resetable
    • open

      public void open() throws IOException
      Specified by:
      open in interface org.refcodes.component.Openable
      Throws:
      IOException
    • close

      public void close()
      Specified by:
      close in interface org.refcodes.component.Closable
    • dispose

      public void dispose()
      Specified by:
      dispose in interface org.refcodes.mixin.Disposable
    • log

      public void log(org.refcodes.tabular.Record<? extends T> aRecord) throws IllegalRecordRuntimeException, UnexpectedLogRuntimeException
      Logs a Record. The targeted data sink for the Record instances (where them are physically stored) depends on the implementation of the Logger. It can be a console, a file, a stream or a database.
      Specified by:
      log in interface Logger<L extends Logger<T>>
      Parameters:
      aRecord - The Record to be logged.
      Throws:
      IllegalRecordRuntimeException - Thrown in case the record cannot be logged as a specific implementation might expect some dedicated Column instances to be contained in the provided Record.
      UnexpectedLogRuntimeException - Thrown in case some other problems regarding logging occurred, e.g. the data sink (physical system where to log to) experiences problems.
    • getLoggers

      protected Collection<Logger<T>> getLoggers()
      Gets the loggers.
      Returns:
      the loggers