Now we migrating from log4j to log4j2. Configuration file is not changed (is includes only Console appender). We want to add File Appender at runtime, so log files are created but logs are not appeared. When we used log4j, we made this way:
PatternLayout layout = new PatternLayout("%d - " + DEFAULT_CONVERSION_PATTERN);
FileAppender fileAppender = new FileAppender(layout, file.getPath());
fileAppender.setName("fileAppender");
logger.removeAllAppenders();
logger.addAppender(fileAppender);
logger.addAppender(new ConsoleAppender(layout));
And it worked fine. But when we moved to log4j2, we started using this code:
PatternLayout layout = PatternLayout.newBuilder().withPattern("%d - " + DEFAULT_CONVERSION_PATTERN).build();
FileAppender fileAppender = FileAppender.newBuilder().setLayout(layout).withFileName(file.getPath())
.setName("fileAppender").build();
LoggerContext.getContext().getLogger(name).getAppenders().clear();
LoggerContext.getContext().getLogger(name).addAppender(fileAppender);
LoggerContext.getContext().getLogger(name).addAppender(ConsoleAppender.newBuilder().setLayout(layout).build());
File is created but logs appear only in Console... Can someone help please with valid creating FileAppender?