Class CreateGenericAppenderTask

  • All Implemented Interfaces:
    SubTask

    public class CreateGenericAppenderTask
    extends CreateAppenderTask

    A Rhino management sub task for creating a log appender.

    Ant Parameters
    Attribute Type Description Required

    appendername

    String

    Name of the appender to create. This name must be unique.

    Yes.

    pluginname

    String

    The Log4J plugin for this appender

    Yes.

    properties

    String

    A comma separated list of configuration properties for the appender. Each property is a key=value pair. Use this or a nested propertyset.

    No.

    failonerror

    boolean

    Flag to control failure behaviour. If 'true', the sub task will throw a BuildException when an error is encountered. If 'false', the sub task will throw a NonFatalBuildException instead of a BuildException under specific circumstances. See below for conditions (if any) which will cause a NonFatalBuildException.

    No. Default value is taken from the Rhino management parent task.

    Nested elements

    Element

    Description

    Required

    propertyset

    Configuration properties for this appender. Alternative to the properties attribute.

    No.

    filter

    A filter to select events that will be reported by this appender.

    No.

    layout

    The layout to use to format log events. If no layout is supplied the default pattern layout of "%m%n" will be used.

    No.

    component

    Additional components such as loggerFields for SyslogAppender, KeyValuePairs, etc. Multiple components may be specified. See CreateGenericComponentTask.

    No

    NonFatalBuildException throw conditions
    • This task will throw a NonFatalBuildException if the appender cannot be created, eg. an appender with the same name already exists.

    To use this task provide the configuration of the appender as attributes and subelements. For example, to replicate the Log4J Cassandra appender example, first configure Cassandra with a keyspace test containing a table logs, add the Cassandra client jar and log4j-nosql-2.8.2.jar to rhino/lib/logging-plugins before starting Rhino, then create an Ant target containing the below slee-management block.

      <Appenders>
        <Cassandra name="Cassandra"clusterName="Test Cluster"keyspace="test"table="logs"bufferSize="10"batched="true">
          <SocketAddress host="localhost"port="9042"/>
          <ColumnMapping name="id"pattern="%uuid{TIME}"type="java.util.UUID"/>
          <ColumnMapping name="timeid"literal="now()"/>
          <ColumnMapping name="message"pattern="%message"/>
          <ColumnMapping name="level"pattern="%level"/>
          <ColumnMapping name="marker"pattern="%marker"/>
          <ColumnMapping name="logger"pattern="%logger"/>
          <ColumnMapping name="timestamp"type="java.util.Date"/>
          <ColumnMapping name="mdc"type="org.apache.logging.log4j.spi.ThreadContextMap"/>
          <ColumnMapping name="ndc"type="org.apache.logging.log4j.spi.ThreadContextStack"/>
        </Cassandra>
      </Appenders>
      <Loggers>
        <Logger name="org.apache.logging.log4j.cassandra"level="DEBUG">
          <AppenderRef ref="Cassandra"/>
        </Logger>
        <Root level="ERROR"/>
      </Loggers>
    CREATE TABLE logs (
        id timeuuid PRIMARY KEY,
        timeid timeuuid,
        message text,
        level text,
        marker text,
        logger text,
        timestamp timestamp,
        mdc map<text,text>,
        ndc list<text>
    );
    <slee-management>
        <creategenericappender appendername="Cassandra"pluginname="Cassandra"properties="clusterName=Test Cluster,keyspace=test,table=logs,bufferSize=10,batched=true">
            <component pluginname="SocketAddress"properties="host=localhost,port=9042"/>
            <component pluginname="ColumnMapping"properties="name=id,pattern=%uuid{TIME},type=java.util.UUID"/>
            <component pluginname="ColumnMapping"properties="name=timeid,literal=now()"/>
            <component pluginname="ColumnMapping"properties="name=message,pattern=%message"/>
            <component pluginname="ColumnMapping"properties="name=level,pattern=%level"/>
            <component pluginname="ColumnMapping"properties="name=marker,pattern=%marker"/>
            <component pluginname="ColumnMapping"properties="name=logger,pattern=%logger"/>
            <component pluginname="ColumnMapping"properties="name=timestamp,type=java.util.Date"/>
            <component pluginname="ColumnMapping"properties="name=mdc,type=org.apache.logging.log4j.spi.ThreadContextMap"/>
            <component pluginname="ColumnMapping"properties="name=ndc,type=org.apache.logging.log4j.spi.ThreadContextStack"/>
        </creategenericappender>
        <addappenderref appendername="Cassandra"logKey="org.apache.logging.log4j.cassandra"/>
        <setloglevel logKey="org.apache.logging.log4j.cassandra"logLevel="DEBUG"/>
    </slee-management>
    • Constructor Detail

      • CreateGenericAppenderTask

        public CreateGenericAppenderTask()