Re: (Finally) Migrating from log4j 1.x

Christopher Schultz <[email protected]>
Newsgroups gmane.comp.jakarta.log4j.user
Message-ID <[email protected]>
Gary,

On 12/17/21 22:18, Gary Gregory wrote:
> Log4j 2 can reconfigure itself when its configuration file changes by
> using the monitorInterval attribute, for example:
> 
> <Configuration name="ConfigTest" status="ERROR" monitorInterval="5">
> 
> See https://logging.apache.org/log4j/2.x/manual/configuration.html
> 
> For programmatic reconfiguration, you can use
> org.apache.logging.log4j.core.config.Configurator.
> 
> I hope that gives you a place to start.

I'll give it a shot. What we are doing is loading a default 
configuration (like "log to console") on startup and then, after reading 
a client-specific configuration file, applying that configuration to the 
already-initialized logging system. We can't predict the name of the 
config file at-or-before startup and we don't want to re-write the 
default configuration. I'm sure we can pass either a new file path to a 
Configurator and/or have it an in-memory configuration. We don't need to 
monkey-around with the in-memory Logger or Appender objects; just tell 
the logging system to reconfigure.

I have seen in the log4j debug logs that it knows how to "reconfigure" 
because it does it pretty much right away after loading. So I think I 
just need to tell it to reload again, but with a different set of configs.

Thanks,
-chris

> On Thu, Dec 16, 2021 at 11:02 AM Christopher Schultz
> <[email protected]> wrote:
>>
>> All,
>>
>> My understanding is that under many circumstances, migrating from log4j
>> 1.x -> 2.x is nearly as easy as simply upgrading the JAR file (and using
>> the migration bridge library), but there are some other restrictions as
>> noted here:
>>
>> https://logging.apache.org/log4j/2.x/manual/migration.html
>>
>> In various programs and services, we are using log4j 1.x in a way that
>> might be a little hacky. Specifically, we have a set of classes which
>> allow appenders and loggers to be reconfigured at runtime using calls
>> such as Appender(Skeleton).setThreshold. Is there a way to do this kind
>> of thing in log4j 2.x?
>>
>> We are also doing things like starting up with a hard-coded
>> configuration to print-to-console and then, after loading a
>> configuration from elsewhere (which may fail, hence logging to the
>> console), re-initialing the logging system, with the new setup (e.g. log
>> to file, network, etc.).
>>
>> The migration guide seems to say "you can't do this", but I think there
>> reality may be "you can't do it anymore.... in the same way".
>>
>> Can I get some practical tips for upgrading from log4j 1.x -> 2.x given
>> the desire to do some of the things listed above?
>>
>> Thanks,
>> -chris
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.