Take a look at the Configurator class in the core module.


On Dec 16, 2017 13:18, "Paladox" <thomasmulhall...@yahoo.com.invalid> wrote:

>  Would like to add more to this question.
> Im wondering is it possible to also reset log levels?
> In log4j1.x we did
>   private static void reset() throws MalformedURLException {    for
> (Enumeration<Logger> logger = LogManager.getCurrentLoggers();
> logger.hasMoreElements(); ) {      logger.nextElement().setLevel(null);
>   }
>     String path = System.getProperty(JAVA_OPTIONS_LOG_CONFIG);    if
> (Strings.isNullOrEmpty(path)) {      PropertyConfigurator.
> configure(Loader.getResource(LOG_CONFIGURATION));    } else {
> PropertyConfigurator.configure(new URL(path));    }  }
> in log4j2 i carn't find any good replacements. Setting setLevel results in
> null pointer same would be for setAllLevels. (Works in log4j1).
> Then when i try to reload the properties file it just resets everything
> then loads the file. Thus if you used some java code it would be lost and
> you would have to restart your java application to get the appenders or
> anything added with java code.
> In log4j1 you need PropertyConfigurator.configure which re added the log
> levels that were from the file without resetting anything.
>     On Friday, 15 December 2017, 16:50:28 GMT, Paladox <
> thomasmulhall...@yahoo.com.INVALID> wrote:
>  Hi, im wondering if i could have some help with migrating from log4j1 to
> log4j2 please?
> Im trying to update gerrit to log4j2 but am stuck on some things. [1]
> 1. How do i migrate from PropertyConfigurator.
> configure(Loader.getResource(LOG_CONFIGURATION)); to something log4j2
> compatible please?
> Im trying to migrate all the way without trying to use log4j1 compatible
> api log4j2. (Though im still pulling it in i am trying not to use it).
> I found doing something like
>     String path = System.getProperty(JAVA_OPTIONS_LOG_CONFIG);    if
> (Strings.isNullOrEmpty(path)) {      ConfigurationSource source =
> ConfigurationSource.fromResource(LOG_CONFIGURATION, null);
> Configurator.initialize(null, source);    } else {      URL in = new
> URL(path);      Configurator.initialize((String) null, null,
> in.toURI());    }
> could work but then it wont reload the configuation without restarting the
> configuation as new (ie gets rid of everything). which .reconfigure() does.
> Im trying to reset log levels to null so that we can reload the
> configuation but reconfigure gets rid of everything thus causing problems
> if you used java to add appenders or anything else. see [2]
> Also how would i migrate from using removeAllAppenders to log4j2
> compatible code please?
> [1] https://gerrit-review.googlesource.com/#/c/gerrit/+/142811/
> [2] https://gerrit-review.googlesource.com/#/c/gerrit/+/
> 142811/46/java/com/google/gerrit/sshd/commands/SetLoggingLevelCommand.java

Reply via email to