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

Reply via email to