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

Reply via email to