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 
>> <mailto:garydgreg...@gmail.com>> wrote:
>> 
>> <Appenders>
>>    <ScriptTest language="JavaScript">
>>       <If>System.getProperty("os.name 
>> <http://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 
>> <mailto:garydgreg...@gmail.com>> wrote:
>> OK, I found 
>> https://logging.apache.org/log4j/2.x/manual/configuration.html#Scripts 
>> <https://logging.apache.org/log4j/2.x/manual/configuration.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 
>> <mailto: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 <mailto:garydgreg...@gmail.com> | 
>> ggreg...@apache.org  <mailto: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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | 
>> ggreg...@apache.org  <mailto: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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>> 
>> 
>> -- 
>> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | 
>> ggreg...@apache.org  <mailto: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 <http://garygregory.wordpress.com/> 
>> Home: http://garygregory.com/ <http://garygregory.com/>
>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Reply via email to