java - Set path of log file at root of spring mvc application -


in case, have configured log4j.xml like

<appender name="file" class="org.apache.log4j.rollingfileappender"> <errorhandler class="org.apache.log4j.helpers.onlyonceerrorhandler" /> <param name="file" value="${app.root}" /> <param name="append" value="true" /> <param name="maxfilesize" value="20000kb" /> <param name="maxbackupindex" value="400" /> <layout class="org.apache.log4j.patternlayout">     <param name="conversionpattern" value="%-5p: %d{dd mmm yyyy hh:mm:ss.sss} %-5l - %m%n%n" /> </layout> 

i have generate log file @ path @

string loggerpath = request.getsession().getservletcontext().getrealpath("");

i using

system.setproperty("app.root", loggerpath+"\\oeslogger.log"); 

but doesn't works. please suggest me solution it.

the point of configurable logging config file more changed program, fail see trying accomplish. can't set file "oeslogger.log" in log4j.xml?

in case, seems logger configured time set system property app.root. that's why change not working. in order change logging property on fly you'd have use log4j's api instead. try like:

logger ll = logger.getlogger("<name of logger>"); fileappender fa = (fileappender) ll.getappender("file"); fa.setfile(loggerpath + "\\oeslogger.log"); fa.activateoptions(); 

very in code.