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