org.apache.log4j.plugins

## Interface Plugin

- All Superinterfaces:
    org.apache.log4j.spi.OptionHandler
  All Known Implementing Classes:
    CustomSQLDBReceiver, DBReceiver, Generator, GUIPluginSkeleton, JMSReceiver, LogFilePatternReceiver, LogFileXMLReceiver, MulticastReceiver, PluginSkeleton, Receiver, SocketHubReceiver, SocketReceiver, UDPReceiver, VFSLogFilePatternReceiver, XMLSocketReceiver, ZeroConfPlugin

      public interface Plugin
      extends org.apache.log4j.spi.OptionHandler

  Defines the required interface for all Plugin objects.

  A plugin implements some specific functionality to extend the log4j framework. Each plugin is associated with a specific LoggerRepository, which it then uses/acts upon. The functionality of the plugin is up to the developer.

  Examples of plugins are Receiver and Watchdog. Receiver plugins allow for remote logging events to be received and processed by a repository as if the event was sent locally. Watchdog plugins allow for a repository to be reconfigured when some "watched" configuration data changes.

  Author:
    Mark Womack (mwomack@apache.org), Nicko Cadell, Paul Smith (psmith@apache.org)

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addPropertyChangeListener(PropertyChangeListener l)` Adds a PropertyChangeListener that will be notified of all property changes.
    `void` | `addPropertyChangeListener(String propertyName, PropertyChangeListener l)` Adds a PropertyChangeListener to this instance which is notified only by changes of the property with name propertyName.
    `org.apache.log4j.spi.LoggerRepository` | `getLoggerRepository()` Gets the logger repository for this plugin.
    `String` | `getName()` Gets the name of the plugin.
    `boolean` | `isActive()` True if the plugin is active and running.
    `boolean` | `isEquivalent(Plugin testPlugin)` Returns true if the testPlugin is considered to be "equivalent" to the this plugin.
    `void` | `removePropertyChangeListener(PropertyChangeListener l)` Removes a specific PropertyChangeListener from this instances registry that has been mapped to be notified of all property changes.
    `void` | `removePropertyChangeListener(String propertyName, PropertyChangeListener l)` Removes a specific PropertyChangeListener from this instance's registry which has been previously registered to be notified of only a specific property change.
    `void` | `setLoggerRepository(org.apache.log4j.spi.LoggerRepository repository)` Sets the logger repository used by this plugin.
    `void` | `setName(String name)` Sets the name of the plugin.
    `void` | `shutdown()` Call when the plugin should be stopped.

    - ### Methods inherited from interface org.apache.log4j.spi.OptionHandler

      `activateOptions`

- - ### Method Detail

    - #### getName

          String getName()

      Gets the name of the plugin.
      Returns:
        String the name of the plugin.

    - #### setName

          void setName(String name)

      Sets the name of the plugin.
      Parameters:
        `name` - the name of the plugin.

    - #### getLoggerRepository

          org.apache.log4j.spi.LoggerRepository getLoggerRepository()

      Gets the logger repository for this plugin.
      Returns:
        the logger repository to which this plugin is attached.

    - #### setLoggerRepository

          void setLoggerRepository(org.apache.log4j.spi.LoggerRepository repository)

      Sets the logger repository used by this plugin. This repository will be used by the plugin functionality.
      Parameters:
        `repository` - the logger repository to attach this plugin to.

    - #### addPropertyChangeListener

          void addPropertyChangeListener(String propertyName,
                                         PropertyChangeListener l)

      Adds a PropertyChangeListener to this instance which is notified only by changes of the property with name propertyName.
      Parameters:
        `propertyName` - the name of the property in standard JavaBean syntax (e.g. for setName(), property="name")
        `l` - listener

    - #### addPropertyChangeListener

          void addPropertyChangeListener(PropertyChangeListener l)

      Adds a PropertyChangeListener that will be notified of all property changes.
      Parameters:
        `l` - The listener to add.

    - #### removePropertyChangeListener

          void removePropertyChangeListener(PropertyChangeListener l)

      Removes a specific PropertyChangeListener from this instances registry that has been mapped to be notified of all property changes.
      Parameters:
        `l` - The listener to remove.

    - #### removePropertyChangeListener

          void removePropertyChangeListener(String propertyName,
                                            PropertyChangeListener l)

      Removes a specific PropertyChangeListener from this instance's registry which has been previously registered to be notified of only a specific property change.
      Parameters:
        `propertyName` - property name, may not be null.
        `l` - listener to be removed.

    - #### isActive

          boolean isActive()

      True if the plugin is active and running.
      Returns:
        boolean true if the plugin is currently active.

    - #### isEquivalent

          boolean isEquivalent(Plugin testPlugin)

      Returns true if the testPlugin is considered to be "equivalent" to the this plugin.

      The equivalency test is at the discretion of the plugin implementation. The PluginRegistry will use this method when starting new plugins to see if a given plugin is considered equivalent to an already running plugin with the same name. If they are considered to be equivalent, the currently running plugin will be left in place, and the new plugin will not be started.

      It is possible to override the equals() method, however this has more meaning than is required for this simple test and would also require the overriding of the hashCode() method as well. All of this is more work than is needed, so this simple method is used instead.

      Parameters:
        `testPlugin` - The plugin to test equivalency against.
      Returns:
        Returns true if testPlugin is considered to be equivelent.

    - #### shutdown

          void shutdown()

      Call when the plugin should be stopped.

Copyright © 2002-2018 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache Chainsaw, Chainsaw, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.