On Sat, Sep 15, 2018 at 5:16 PM Gary Gregory <garydgreg...@gmail.com> wrote:
> > > On Sat, Sep 15, 2018 at 4:43 PM Gary Gregory <garydgreg...@gmail.com> > wrote: > >> On Sat, Sep 15, 2018 at 4:40 PM Ralph Goers <ralph.go...@dslextreme.com> >> wrote: >> >>> If you don’t want to log anything then enable a noop appender that just >>> returns without doing anything >>> >> >> Oh, I see we already have a NullAppender... >> > > So I can do: > > <ScriptAppenderSelector name="SelectIt"> > <Script language="JavaScript"><![CDATA[ > ##SPECIAL_THING##]]> > </Script> > <AppenderSet> > <RollingFileAppender name="MyAppender" ... /> > <Null/> > </AppenderSet> > </ScriptAppenderSelector> > > Not quite as simple as: > > <RollingFileAppender name="MyAppender" enable="##SPECIAL_THING##" ... /> > > I often times have to walk our users through some configs so option 2 is > simpler for them and less error prone... but option 1 will work for now... > The not great thing here is that for each appender I want to be able to toggle, I have to repeat this pattern... Gary > > Gary > > >> >> Gary >> >> >>> >>> Sent from my iPhone >>> >>> > On Sep 15, 2018, at 12:34 PM, Gary Gregory <garydgreg...@gmail.com> >>> wrote: >>> > >>> > On Sat, Sep 15, 2018 at 3:24 PM Ralph Goers < >>> ralph.go...@dslextreme.com> >>> > wrote: >>> > >>> >> We have an appended selector for this. Why not us it? >>> >> >>> > >>> > Hi, >>> > >>> > Because: >>> > - Conceptually, I am not selecting an appender out of a set, I want >>> the one >>> > appender enabled or disabled. >>> > - In practice, using a ScriptAppenderSelector with a single Appender >>> means >>> > my script would have to 'select' a non-existing appender when the >>> script >>> > evaluates to false, which would work BUT would emit an ERROR log event >>> to >>> > the status logger like "No node named DISABLE_ME in >>> > NameOfScriptAppenderSelector". This would be a normal configuration, >>> so an >>> > ERROR would be very bad for our users. Changing the level of event >>> would >>> > not help, unless it was buried at the DEBUG level, which is not good >>> for >>> > the current use cases. >>> > - Alternatively, we could have add a NoOpAppender which I would then >>> select >>> > when I want the file appender disabled. This would imply accepting the >>> > added costs, no matter how minor in memory and speed. >>> > >>> > Thoughts? >>> > >>> > Gary >>> > >>> > >>> >> >>> >> Sent from my iPhone >>> >> >>> >>> On Sep 15, 2018, at 11:07 AM, Gary Gregory <garydgreg...@gmail.com> >>> >> wrote: >>> >>> >>> >>> Hi All: >>> >>> >>> >>> At work, we have an installer program that installs one of five log4j >>> >>> configs depending on what the user selects in a UI. Each of these 5 >>> >> configs >>> >>> causes log events to end up in different kinds of SQL and NoSQL >>> >> databases, >>> >>> you pick one when you install. The installer does a brute force >>> search >>> >> and >>> >>> replace in the log4j file to replace markers with things like >>> database IP >>> >>> addresses and port numbers. So far so simple and good. >>> >>> >>> >>> The next iteration of the installer provides an additional choice to >>> log >>> >> to >>> >>> a file or not, in addition of one of the 5 databases. >>> >>> >>> >>> Option 1? >>> >>> In order to avoid having 5x2 preset config files in the installer, >>> I'd >>> >> like >>> >>> to add the file config to each of the existing 5 configurations and >>> have >>> >>> the file appender enabled or not based on a boolean flag that the >>> >> installer >>> >>> can implement as part of its search and replace. You'd end up with: >>> >>> >>> >>> <AppenderRef ref="foo" enabled="true|false" /> >>> >>> <AppenderFoo enabled="true|false" /> >>> >>> >>> >>> If an appender is disabled it does not end up in the Log4j object >>> tree at >>> >>> all. It is like it never existed in the config file. >>> >>> >>> >>> Option 2? >>> >>> Add a second log4j2.xml, say log4j2-rollingfile.xml config file and >>> have >>> >>> Log4j combine it with the other log4j.xml on the class path. How? >>> >>> >>> >>> Other options? >>> >>> >>> >>> Thank you, >>> >>> Gary >>> >> >>> >> >>> >>> >>>