[ 
https://issues.apache.org/jira/browse/LOG4J2-1686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Ross updated LOG4J2-1686:
--------------------------------
    Comment: was deleted

(was: The documentation for {{ScriptAppenderSelector}} is still wrong on the 
website.  It leaves a LOT to be desired.  Even the corrected documentation in 
these comments doesn't seem to work right.  The relationship between the return 
value from the script and the {{Appender}} in the {{AppenderSet}} is confusing 
and almost totally undocumented.  For example, I have this:
{code:xml}
<ScriptAppenderSelector name="ArchDependentAppender">
        <Script language="JavaScript">
                <![CDATA[
                        try{
                                load("nashorn:mozilla_compat.js");
                        } catch(e) {}
                        importPackage(java.lang);
                        System.getProperty("os.name").search("Windows") > -1 ? 
"WindowsAppender" : "UnixAppender";
                ]]>
        </Script>
        <AppenderSet>
                <FileAppender name="WindowsAppender">
                        <PatternLayout>
                                <Pattern>${appenderPatternLayout}</Pattern>
                        </PatternLayout>
                </FileAppender>
                <SyslogAppender name="UnixAppender" 
                                                advertise="true" 
                                                facility="LOCAL1" 
                                                format="RFC5424" 
                                                host="localhost" 
                                                port="514" 
                                                protocol="TCP" 
                                                newLine="true" />
        </AppenderSet>
</ScriptAppenderSelector>
{code}
Which, from what I can tell, *should* work because the names of the 
{{Appender}} in the {{AppenderSet}} match the return value from the script.  
However, looking at log4j2 debug output, this does not appear to be working:
{noformat}
ERROR StatusLogger AppenderSet contains invalid attributes "FileAppender", 
"SyslogAppender"
ERROR StatusLogger No node named WindowsAppender in 
org.apache.logging.log4j.core.appender.AppenderSet@2d52216b{noformat}
So... how is this supposed to work?  A proper (and full) example that actually 
works would be kinda useful.

My hunch is that there's a disconnect related to the "strict" versus "loose" 
versions of the schema which, for all its good intentions, is just adding 
unnecessary complexity to learning log4j2 and example sharing.)

> Add support for properties selectors
> ------------------------------------
>
>                 Key: LOG4J2-1686
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1686
>             Project: Log4j 2
>          Issue Type: New Feature
>          Components: Configurators
>    Affects Versions: 2.7
>            Reporter: Raman Gupta
>            Assignee: Ralph Goers
>            Priority: Major
>
> It would be great to support conditional configuration like logback:
> http://logback.qos.ch/manual/configuration.html#conditional
> This allows for more advanced configuration than is currently possible with 
> property substitution.
> Example use case: to implement 
> https://issues.apache.org/jira/browse/LOG4J2-1685 without log4j library 
> support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to