On Sat, Sep 10, 2016 at 11:43 AM, Ralph Goers <[email protected]>
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.
>
Right. my use case would be that on startup, only the desired Appender is
created, which sould like what you said: I only want the script to run when
the Selector is initialized. Can you clarify what I'd (or anyone) needs to
implement to get at least this first use case working? What would the
configuration XML look like for that?
Thank you,
Gary
>
> Ralph
>
> On Sep 10, 2016, at 11:04 AM, Gary Gregory <[email protected]> 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 <[email protected]>
> 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 <[email protected]>
>> 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: [email protected] | [email protected]
>>> 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: [email protected] | [email protected]
>> 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: [email protected] | [email protected]
> 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: [email protected] | [email protected]
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