On Sat, Sep 15, 2018 at 5:22 PM Gary Gregory <garydgreg...@gmail.com> wrote:

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

I have something working, if ponderously, using the ScriptAppenderSelector.
After looking at all the configs I had to update, it seems that supporting
an "enabled" attribute would be much cleaners.

Gary


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

Reply via email to