Hi Kriti.
This sounds an elegant solution.
Maybe I will try without the properties file, simply using change of the
properties in java only
p.setProperty("FILE_SIZE", 200000);
System.setProperties(p);
Thanks,
Xavier.
________________________________
From: Kriti Wadhwa <[email protected]>
To: logback users list <[email protected]>
Cc: logback <[email protected]>
Sent: Monday, August 12, 2013 10:28 AM
Subject: Re: [logback-user] Using configuration file and programatically
changing configuration?
Hi Xavier,
Have a look at this thread, might be of some help:
http://logback.10977.n7.nabble.com/Basic-example-of-programmatically-setting-the-configuration-td12667.html
In my application too there was a similar requirement, I did the following:
Store values to be modified on the fly from UI in a properties(configuration)
file, reset the logger context programmatically, logback.xml will read the
configuration file and hence the configuration shall be modified.
(Used Variable Substitution to implement this:
http://logback.qos.ch/manual/configuration.html#variableSubstitution).
example:
# process_settings.properties : Configuration file (Set the values set from UI
here, logback.xml will read this properties file to substitute the variables)
FILE_SIZE=20000000
LOG_LEVEL=INFO
BACKUP_COUNT=4
Use these values in logback.xml as follows:
<?xmlversion="1.0" encoding="UTF-8"?>
<configuration>
<propertyresource="process_settings.properties" />
<appendername="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d [%thread] %-5level %class{0} %msg%n</pattern>
</encoder>
</appender>
<appendername="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/xyz.log</file>
<rollingPolicyclass="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/var/log/xyz.log.%i.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>${BACKUP_COUNT}</maxIndex>
</rollingPolicy>
<triggeringPolicyclass="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>${FILE_SIZE}</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %class{0}
%msg%n</pattern>
</encoder>
</appender>
<rootlevel="INFO">
<appender-refref="STDOUT" />
<appender-refref="FILE" />
</root>
<loggername="com.test">
<levelvalue="${LOG_LEVEL}" />
</logger>
</configuration>
Sample JAVA Code:
Set the values set in UI to properties file and reset the logger context as
follows.
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
ContextInitializer ci = newContextInitializer(loggerContext);
ci.autoConfig();
Hope this helps..
Regards,
Kriti
-----"Logback-user" <[email protected]> wrote: -----
To: logback <[email protected]>
>From: Xavier Outhier <[email protected]>
>Sent by: "Logback-user" <[email protected]>
>Date: 08/09/2013 12:26PM
>Subject: [logback-user] Using configuration file and programatically changing
>configuration?
>
>
>Hi,
>
>
>the idea is to have to enable the user to change the config from the UI of the
>web applications (without accessing the server).
>
>I would like to know if it is possible to have both a configuration file for
>LogBack for the default usage of the application and the configuration being
>modified programatically the fly when investigating issue. How to implement
>that?
>On way could be to write on the fly the configuration file when it is set to
>be reloaded automatically but is there an another way that would pause the
>reading from the config file and use the API?
>
>
>Thanks,
>
>
>Xavier.
>_______________________________________________
>Logback-user mailing list
>[email protected]
>http://mailman.qos.ch/mailman/listinfo/logback-user
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user