On Thu, Aug 6, 2015 at 8:45 PM, Ralph Goers <[email protected]>
wrote:

> 1.  There are examples that show how to modify the configuration
> programmatically. I recently created an example that is checked into the
> log4j-samples subproject. However, it is probably more complicated than
> what you are asking for.
> 2. Log4j 1 intermixed the public API that applications used to perform
> logging with what were really internal classes - it was not really possible
> to tell the difference.  With Log4j 2 you have assurances that we will do
> our utmost to preserve compatibility of the API - and it is clearly defined
> what that is.  Modifying the configuration aspects of logging, while
> common, delve into the details of the implementation of the logging
> framework. While we will always try to preserve compatibility - especially
> on the classes we know users interact with - we won’t guarantee that
> interfaces or implementations won’t be changed.  However, for the use cases
> of modifying logging levels, or modifying the configuration in “normal”
> ways you should consider that those things may be done safely with minimal
> risk that they will break with a new release.
>
> We probably could use better documentation on what we guarantee with
> backward compatibility and what we don’t.
>
> To achieve what you want just get the LoggerConfig you want to modify,
> change its level and then call the updateLoggers() method of the
> LoggerContext.
>

For the simple case where you want to update one level, I think we should
have a one method call for folks. Where would be the best place to hang
that?

Gary


>
> Ralph
>
> > On Aug 6, 2015, at 1:44 PM, Xen <[email protected]> wrote:
> >
> > Hey,
> >
> > I just read the manual at
> https://logging.apache.org/log4j/2.0/log4j-users-guide.pdf. A reasonably
> good manual I must say, compared to some products out there.
> >
> > It doesn't really mention the public API though, only sparsely
> throughout the examples. I skipped through the remainder of the property
> sections for all the things.
> >
> > ;-).
> >
> > I am led to believe that I am not meant to configure log4j2 during
> program execution. Nor can I change the configuration except by loading
> different configuration files.
> >
> > I am happy to assume that this is rather odd. I would like it if I had a
> main configuration file indeed, but...
> >
> > My application needs to adjust logging levels on the fly. That would be
> the levels indicated by LoggerConfig objects.
> >
> > It would not suffice, really, to have several config files, each for
> each wanted state.
> >
> > Should I use log4j version one?
> >
> > It seems to be the better choice as the way you keep mentioning it (or
> the site/manual mentions it) but I am hesitant always to use older versions.
> >
> > I just want my application to be able to e.g. enter a debugging mode by
> itself. This would require for instance the levels of certain LoggerConfigs
> to be raised or lowered. You might want to enter a verbose mode where a
> certain low level component starts outputting data.
> >
> > Particularly in response to the console, but I might even remotely
> monitor my application using a custom shell.
> >
> > I am glad that in any case there is a default separation of test and
> main scripts, because logging may interfere with unit tests.
> >
> > But I don't really like this static configuration. I was expecting
> log4j2 to be really good, but then it says that 3 of the 4 configuration
> options are not available, and the FAQ summarily states that if you work
> around it, your code might break with every minor revision. Great. Yikes.
> >
> > That's not a real good way of having a public API ;-). And I can't go
> and extend it when I'm just a new user.
> >
> > What is the solution for me here? I just want to go to a LoggerConfig
> and change its level. Ideally I would have different states (that could of
> course be represented by config files) that I would load all in one go (as
> in, a complete state describing multiple configurations of different
> components, belonging together). But I also want to be able to manually set
> and remove (change) individual components.
> >
> > Such would be accomplished by simply changing the level of one
> LoggerConfig. Is it not possible?
> >
> > Regards,
> >
> > Bart.
> >
> >
> > ---------------------------------------------------------------------
> > 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]
>
>


-- 
E-Mail: [email protected] | [email protected]
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

Reply via email to