org.apache.log4j.rewrite
Class RewriteAppender

java.lang.Object
  extended by org.apache.log4j.AppenderSkeleton
      extended by org.apache.log4j.rewrite.RewriteAppender
All Implemented Interfaces:
Appender, AppenderAttachable, OptionHandler, UnrecognizedElementHandler

public class RewriteAppender
extends AppenderSkeleton
implements AppenderAttachable, UnrecognizedElementHandler

This appender forwards a logging request to another appender after possibly rewriting the logging event. This appender (with the appropriate policy) replaces the MapFilter, PropertyFilter and ReflectionFilter from log4j 1.3.


Field Summary
 
Fields inherited from class org.apache.log4j.AppenderSkeleton
closed, errorHandler, headFilter, layout, name, tailFilter, threshold
 
Constructor Summary
RewriteAppender()
           
 
Method Summary
 void addAppender(Appender newAppender)
          Add appender.
protected  void append(LoggingEvent event)
          Subclasses of AppenderSkeleton should implement this method to perform actual logging.
 void close()
          Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting.
 Enumeration getAllAppenders()
          Get iterator over attached appenders.
 Appender getAppender(String name)
          Get appender by name.
 boolean isAttached(Appender appender)
          Determines if specified appender is attached.
 boolean parseUnrecognizedElement(Element element, Properties props)
          Called to inform a configured object when an unrecognized child element is encountered.
 void removeAllAppenders()
          Removes and closes all attached appenders.
 void removeAppender(Appender appender)
          Removes an appender.
 void removeAppender(String name)
          Remove appender by name.
 boolean requiresLayout()
          Configurators call this method to determine if the appender requires a layout.
 void setRewritePolicy(RewritePolicy rewritePolicy)
           
 
Methods inherited from class org.apache.log4j.AppenderSkeleton
activateOptions, addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RewriteAppender

public RewriteAppender()
Method Detail

append

protected void append(LoggingEvent event)
Subclasses of AppenderSkeleton should implement this method to perform actual logging. See also AppenderSkeleton.doAppend method.

Specified by:
append in class AppenderSkeleton

addAppender

public void addAppender(Appender newAppender)
Add appender.

Specified by:
addAppender in interface AppenderAttachable
Parameters:
newAppender - appender to add, may not be null.

getAllAppenders

public Enumeration getAllAppenders()
Get iterator over attached appenders.

Specified by:
getAllAppenders in interface AppenderAttachable
Returns:
iterator or null if no attached appenders.

getAppender

public Appender getAppender(String name)
Get appender by name.

Specified by:
getAppender in interface AppenderAttachable
Parameters:
name - name, may not be null.
Returns:
matching appender or null.

close

public void close()
Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting.

Specified by:
close in interface Appender

isAttached

public boolean isAttached(Appender appender)
Determines if specified appender is attached.

Specified by:
isAttached in interface AppenderAttachable
Parameters:
appender - appender.
Returns:
true if attached.

requiresLayout

public boolean requiresLayout()
Configurators call this method to determine if the appender requires a layout. If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true.

Specified by:
requiresLayout in interface Appender

removeAllAppenders

public void removeAllAppenders()
Removes and closes all attached appenders.

Specified by:
removeAllAppenders in interface AppenderAttachable

removeAppender

public void removeAppender(Appender appender)
Removes an appender.

Specified by:
removeAppender in interface AppenderAttachable
Parameters:
appender - appender to remove.

removeAppender

public void removeAppender(String name)
Remove appender by name.

Specified by:
removeAppender in interface AppenderAttachable
Parameters:
name - name.

setRewritePolicy

public void setRewritePolicy(RewritePolicy rewritePolicy)

parseUnrecognizedElement

public boolean parseUnrecognizedElement(Element element,
                                        Properties props)
                                 throws Exception
Called to inform a configured object when an unrecognized child element is encountered.

Specified by:
parseUnrecognizedElement in interface UnrecognizedElementHandler
Parameters:
element - element, may not be null.
props - properties in force, may be null.
Returns:
true if configured object recognized the element
Throws:
Exception - throw an exception to prevent activation of the configured object.


Copyright © 1999-2012 Apache Software Foundation. All Rights Reserved.