On Sun, Sep 11, 2016 at 12:47 PM, Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> Yes. The Appenders tag inside the ScriptSelector are the Appenders that
> are to be created. But now that I think about it, we can’t use “Appenders”
> for this. If you look at the RoutingAppender you will notice that Appenders
> there are declared under a Route element. The Route plugin is defined with
> deferChildren=true. This means that whatever is configured under the Route
> will not be created during initial configuration. Instead the Route keeps a
> reference to the Node and then configures the Appender when it is required.
> So we would need a new plugin to wrap the Appenders that are to be created.
>

Can you please describe in more detail how this new plug fits in and what
it does? I can't quite connect the dots with the parallel of the routing
appender. I'm willing to implement this as I need the feature ASAP.

Gary


> Ralph
>
> On Sep 11, 2016, at 11:10 AM, Gary Gregory <garydgreg...@gmail.com> wrote:
>
> 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
>
>
>


-- 
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