log4j - Log4j2 programmatic configuration Log filename issue -
i have configured log4j2 using programmatic configuration.please find code below.i running code on jdk1.8.the log files getting generated log file names not created appropriately pattern defined.the file generate names test_28_12_2016_24.log
looks simpledateformat not getting recognized.please let me know if missing anything.
public class test { public static void main(string args[]){ public final string log_file_pattern = "-%d{dd-mm-yyyy-hh}.%i.log"; public final string my_log_pattern_layout = "%msg%n"; /* configuring logger context */ private loggercontext context = (loggercontext) logmanager.getcontext(false); final configuration config = context.getconfiguration(); final layout<? extends serializable> layout = patternlayout.createlayout(my_log_pattern_layout, null, config, null,null,true, true, null, null); /* configuring policies */ final timebasedtriggeringpolicy timebasedtriggeringpolicy = timebasedtriggeringpolicy.createpolicy(timeunit.days.tomillis(1), "true"); final sizebasedtriggeringpolicy sizebasedtriggeringpolicy = sizebasedtriggeringpolicy.createpolicy(1024*1024*10); final compositetriggeringpolicy policy = compositetriggeringpolicy.createpolicy(timebasedtriggeringpolicy,sizebasedtriggeringpolicy); final defaultrolloverstrategy strategy = defaultrolloverstrategy.createstrategy("50", "1", null,null, null, false, config); /* creating appenders */ final appender appender = rollingfileappender.createappender("target/logs/test.log" , log_file_pattern, "true", "log-file-appender", null, null, "true", policy, strategy, layout, null, null, null, null, config); appender.start(); appenderref ref = appenderref.createappenderref("file", null, null); appenderref[] refs = new appenderref[] {ref}; /*creating loggers*/ loggerconfig loggerconfig = loggerconfig.createlogger("true", level.error, "file_logger", "com.*", refs, null, config, null); loggerconfig.addappender(appender,null,null); config.addlogger("logger" , loggerconfig); context.updateloggers(); } public void writelogs() { logger logger = context.getlogger("logger"); logger.error("test data"); } }
the log file pattern should include file name multiple logs in same directory, believe issue not having correct directory in filepattern. creating or failing create files in directory.
the file pattern should this.
"target/logs/test-%d{dd-mm-yyyy-hh}.%i.log"
Comments
Post a Comment