Gary Gregory created LOG4J2-1597:
------------------------------------

             Summary: Add a ScriptSelector Appender to create an Appender 
specified by a Script
                 Key: LOG4J2-1597
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1597
             Project: Log4j 2
          Issue Type: New Feature
          Components: Appenders
            Reporter: Gary Gregory
            Assignee: Gary Gregory


The use case is to create an OS-based dynamic configuration file.

The script determines which appender to use (once), and instantiates that 
appender (once). There is no need for one appender to delegate to another 
appender.

This feature helps you build your configuration dynamically, all from the 
configuration file, to determine which appenders to configure. This is 
different from using a RoutingAppender which creates a level of indirection and 
decides what to do for each log event _at runtime_.

You can use multiple ScriptSelector Appenders if needed.

For example:
{code:xml}
<Configuration status="WARN" name="RoutingTest">
  <Appenders>
    <ScriptSelector name="InitAppender">
      <Script language="JavaScript"><![CDATA[
         "OSNameFoo".search("Foo") > -1 ? "List2" : "List1";]]>
      </Script>
      <AppenderSet>
        <List name="List1" />
        <List name="List2" />
      </AppenderSet>
    </ScriptSelector>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Routing" />
    </Root>
  </Loggers>
</Configuration>
{code}

The new plugins are ScriptSelector (an Appender that builds a different 
ScriptSelector) and AppenderSet, a plugin with defered set to true.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to