You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Pranav Pratap (JIRA)" <ji...@apache.org> on 2014/09/12 23:32:33 UTC

[jira] [Commented] (LOG4J2-823) Changing AsyncLogger level programmatically

    [ https://issues.apache.org/jira/browse/LOG4J2-823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14132143#comment-14132143 ] 

Pranav Pratap commented on LOG4J2-823:
--------------------------------------

I am using below code for changing the root level log programmatically: This will change the Root Level Logger:

public static void chngRootLogLevel(Level level) {
		
		LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
		Configuration config = ctx.getConfiguration();
		LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
		loggerConfig.setLevel(level);
		ctx.updateLoggers();
	}

I tried to use below Code for changing the logger level log, it works fine with synchronous logger i.e., for below code snippet:

<Loggers>
		<Logger name="com.test.main" level="debug">
			<AppenderRef ref="asyncLog" /> 
			<appender-ref ref="RollingFile" />
		</Logger>
		<AsyncRoot level="error"/> 
	</Loggers>


public static void chngLogggerLogLevel(Level level, Logger log) {
		LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
		Configuration config = ctx.getConfiguration();
		LoggerConfig loggerConfig = config.getLoggerConfig(log.getName());
		loggerConfig.setLevel(level);
		ctx.updateLoggers();
	}

But the same if I try for <AsyncLogger></AsyncLogger> it does not work. Please let me know how can we change the AsyncLogger programmatically.

> Changing AsyncLogger level programmatically
> -------------------------------------------
>
>                 Key: LOG4J2-823
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-823
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-rc2
>            Reporter: Pranav Pratap
>              Labels: AsyncLogger
>
> I am trying to programmatically change the log level of AsyncLogger. But unable to do so. 
> Programmatically we can change AsyncRoot or Root Log level using below code:
> LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
> 		Configuration config = ctx.getConfiguration();
> 		LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
> 		loggerConfig.setLevel(level);
> 		ctx.updateLoggers();
> How to achieve the same for AsyncLogger? Please suggest. I searched many forums but all provide the way for Root Level or AsyncRoot Log Level Change. But no once suggest the AsyncLogger logger level change mechanism.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org