[prev in list] [next in list] [prev in thread] [next in thread]
List: log4j-user
Subject: RE: Changing log4j configuration runtime ...
From: "Preetam Palwe" <preetamp () aftek ! com>
Date: 2009-06-22 8:16:08
Message-ID: 000801c9f310$05fcf520$11f6df60$ () com
[Download RAW message or body]
It worked!!!
Just added ...
properties.put("log4j.reset", "true");
Thanks !!!
-----Original Message-----
From: Preetam Palwe [mailto:preetamp@aftek.com]
Sent: Monday, June 22, 2009 1:23 PM
To: Log4J Users List
Subject: RE: Changing log4j configuration runtime ...
I tried using
new PropertyConfigurator().doConfigure(properties, LogManager
.getLoggerRepository());
But still the configuration is not getting reflected !
Any idea?
-----Original Message-----
From: Preetam Palwe [mailto:preetamp@aftek.com]
Sent: Monday, June 22, 2009 12:54 PM
To: 'Log4J Users List'
Subject: RE: Changing log4j configuration runtime ...
Or in other words
I want to do
PropertyConfigurator.reconfigure(Properties prop);
Is there any way to do this ?
-----Original Message-----
From: Preetam Palwe [mailto:preetamp@aftek.com]
Sent: Monday, June 22, 2009 12:13 PM
To: 'Log4J Users List'
Subject: RE: Changing log4j configuration runtime ...
Thanks Yair for the reply!
I have used property file only.
The thing is the property file is open and if someone edit it and restart the java \
process he would be able to see all the DEBUG logs (which contains some critical \
information)
I dont want this to happen so want to change at runtime (in code) the configuration!
-----Original Message-----
From: Yair Ogen [mailto:yairogen@gmail.com]
Sent: Sunday, June 21, 2009 2:38 PM
To: Log4J Users List
Subject: Re: Changing log4j configuration runtime ...
Why not use a regular property file?
Then when you to update the file you can load the changes automatically
using the "PropertyConfigurator.configureAndWatch" mechanism.
On Sun, Jun 21, 2009 at 11:41 AM, Preetam Palwe <preetamp@aftek.com> wrote:
> Hello all,
>
>
>
> I have successfully configured log4j in my standalone java application
> using PropertyConfigurator.configure()
>
> Here is the configuration file
>
>
>
> log4j.rootLogger=DBUG, LogFile
>
>
>
> log4j.logger.com.server.core=INFO
>
> log4j.logger. com.server.core.SecurityManager =DEBUG
>
> log4j.logger. com.server.core.SecurityPatternsCreator =DEBUG
>
>
>
>
> log4j.appender.LogFile=org.apache.log4j.RollingFileAppender
>
> log4j.appender.LogFile.File=c:/server.log
>
> log4j.appender.LogFile.MaxFileSize=5MB
>
> log4j.appender.LogFile.MaxBackupIndex=10
>
>
> log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
>
> log4j.appender.LogFile.layout.ConversionPattern=%d{yyyy
> MM dd HH:mm:ss:SSS}# [%-5p]# [%t]# %c# %C{1}.%M# %m%n
>
>
>
> In case of my application I have a security related library
> (securitylib.jar) in which there we do some is a critical security
> related processing. And I want to set logging level of "INFO" to all the
> classes/loggers from this jar.
>
> The log4j configuration is done before loading securitylib.jar using
> above configuration file.
>
> When securitylib.jar is loaded I tried to re-configure log4j using
> following code.
>
> (what I have done here is removed all the explicit loggers set in
> configuration file, updated the configuration properties and configured
> logger again)
>
>
>
> But when I test the system I am still able to see the DEBUG logs for
> classes/loggers com.server.core.SecurityManager and
> com.server.core.SecurityPatternsCreator (which I had marked as DEBUG in
> config files)
>
>
>
> My questions are ...
>
> 1. Why after reconfiguring the loggers the new configuration is
> not getting reflected ?
>
> 2. Is there any way to get the current log4j configuration and
> change it at runtime ?
>
>
>
> Thanks in advance for your help!
>
> ~PP
>
>
>
> private void reinitLog4j()
>
> {
>
> try
>
> {
>
> String log4jFile = System.getProperty("log4j.file");
>
> Properties properties = new Properties();
>
> properties.load(new FileInputStream(log4jFile));
>
> updateLoggingConfiguration(properties);
>
> PropertyConfigurator.configure(properties);
>
> }
>
> catch (IOException ioEx)
>
> {
>
> throw new RuntimeException("failed to reconfigure
> logger "
>
> + ioEx.getMessage(), ioEx);
>
> }
>
> logger = Logger.getLogger(this.getClass());
>
> logger.info("Log4j RE initialised to use INFO logs
> everywhere !");
>
> logger.debug("THIS SHOULD NEVER COME IN LOGS");
>
> }
>
>
>
> private void updateLoggingConfiguration(Properties properties)
>
> {
>
> for (Iterator iterator =
> properties.entrySet().iterator(); iterator
>
> .hasNext();)
>
> {
>
> Entry entry = (Entry) iterator.next();
>
> String key = (String) entry.getKey();
>
> if (key.equalsIgnoreCase("log4j.rootLogger"))
>
> {
>
>
> entry.setValue(getRootLoggerConfiguration((String) entry
>
> .getValue()));
>
> }
>
> else if (key.startsWith("log4j.logger"))
>
> {
>
> iterator.remove();
>
> }
>
> }
>
> }
>
>
>
> private String getRootLoggerConfiguration(String currentConfig)
>
> {
>
> String[] tokens = IOUtil.tokenizeString(currentConfig,
> ",");
>
> StringBuilder builder = new StringBuilder();
>
> for (int i = 0; i < tokens.length; i++)
>
> {
>
> if (i == 0)
>
> {
>
> builder.append("INFO");
>
> continue;
>
> }
>
> builder.append(", " + tokens[i]);
>
> }
>
> return builder.toString();
>
> }
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic