java - Log4j FileAppender issue in Tomcat server -
i working on webapplication , have requirment generate log files @ run time impex process.here use case validating xml file , validation error being handled custom error handler.this error hanlde passed underlying validator (jaxb 2.x validator),so have create log file when instance of error hanlder being created. using log4j logging api
here code create log file @ run time
xmlerrorhandler<object> errorhandler=new xmlerrorhandler<object>(logfilelocation); logfilename=errorhandler.getlogfilename(); validator.seterrorhandler(errorhandler); validator.validate(source);
i creating log file inside xmlerrorhandler constructor since point have control here code log file creation
fileappender appender; try { appender = new fileappender(layout, sb.tostring(), false); log.addappender(appender); log.setadditivity(false); log.setlevel(level.warn); } catch (ioexception e) { e.printstacktrace(); }
everything working fine , file being created correctly being written logger respective place. if restart server real problem starts , logger start appending log content not current log file file being created process while server running. here details lets suppose have 3 log (a,b,c) files @ location 3 lines in each log file , c latest file created in process. when restart server(by resrarting mean stopped tomcat console) how appending data in previos log files in fashin c has still 3 lines b has 6 lines has 9 lines
it seems appender hace created still open or have refrence, not sure going on. in regard helpfull.
problem solved.. issue appender using.i of impression log4j handle closing of appender not doing (i saw fileappender code trying close appender). closed appender myself , solved problem.
Comments
Post a Comment