Are the <Appenders> tags really meant to be nested?

Gary

On Sat, Sep 10, 2016 at 11:48 AM, Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> Oops. I forgot the closing CDATA tag in the script.
>
> Ralph
>
> On Sep 10, 2016, at 11:43 AM, Ralph Goers <ralph.go...@dslextreme.com>
> wrote:
>
> Interesting. OS/390.  I worked on MVS, OS/370, z/OS, etc many moons ago
> but haven’t worked on a mainframe since 2001.
>
> This sort of sounds like you want an Appender Selector, which would be an
> Appender that uses a Selector to figure out which Appender to delegate to.
> This is a bit like the PatternSelector. I would imagine it would make sense
> to implement AppenderSelectors and LayoutSelectors.  You probably would
> want to dynamically initialize the Appenders much like the RoutingAppender
> does.
>
> Maybe it would look like:
>
> <Appenders>
>   <ScriptSelector name=“" default=“”>
>      <Script language=“groovy”><![CDATA[
>          if (System.getProperty”os.name”).contains(“OS/390”)) then {
>              return “Socket”;
>          } else {
>              return “File”;
>          }
>      </Script>
>      <Appenders>
>          <SocketAppender name=“Socket” …/>
>          <FileAppender name=“File” …/>
>      </Appenders>
>   </ScriptSelector>
> </Appenders>
>
> The thing is that this script would run every time the Selector was
> accessed while it sounds like you would only want the script to run when
> the Selector is initialized. We could do that too but the script would need
> to be declared in a property that would only be used when the selector is
> initialized. I would want to support being able to do both.
>
> Ralph
>
> On Sep 10, 2016, at 11:04 AM, Gary Gregory <garydgreg...@gmail.com> wrote:
>
> <Appenders>
>    <ScriptTest language="JavaScript">
>       <If>System.getProperty("os.name").contains("OS/390")</If>
>       <True>
>          <SocketAppender ...>
>      </True>
>      <False>
>          <FileAppender ...>
>      </False>
>    </ScriptTest>
> </Appenders>
>
> ?
>
>
> On Sat, Sep 10, 2016 at 10:40 AM, Gary Gregory <garydgreg...@gmail.com>
> wrote:
>
>> OK, I found https://logging.apache.org/log4j/2.x/manual/configurat
>> ion.html#Scripts and I think I could use either:
>>
>> - Use composite configurations: One file for OS/390, one for all other
>> OSs; or
>> - Do it all in one configuration file (that seems simpler)
>>
>> It seems like there are some pieces missing to do what I want
>> conveniently.
>>
>> Should I define all appenders in <Appenders> and later use a script to
>> only add the one(s) I want in the <Root> section?
>>
>> Or, should the <Appenders> section itself be scripted to only add the
>> appenders I want?
>>
>> Since I expect the OS/390 appender will likely blow up running on a
>> different OK I do not want to create it unless I know it can run OK.
>>
>> I guess then I have a conditional section in both the Appenders and in
>> the Root section so that when I say <AppenderRef =...> we do not go look
>> for an appender that is not defined.
>>
>> Thoughts?
>>
>> A narrow solution would be to add an "os" attribute to all appenders but
>> that seems lame. os="OS/390" and os="!OS/390" means also knowing about
>> "not", yikes.
>>
>> Gary
>>
>> On Sat, Sep 10, 2016 at 10:05 AM, Gary Gregory <garydgreg...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I can't seem to find on our site the scripting support that was recently
>>> added (or is that only in master?).
>>>
>>> What I need to do is only add a specific appender when running on a
>>> specific OS (USS on OS/390 if you must know). Then only add a different
>>> appender when not running on that OS.
>>>
>>> I'd rather not have to hard-code this and make thing more complicated.
>>>
>>> Thoughts?
>>>
>>> Gary
>>>
>>> --
>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>
>>
>>
>> --
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>
>
> --
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>
>
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to