in log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/EnhancedRollingFileAppenderBuilder.java [226:292]
private Appender createAppender(
final String name,
final Layout layout,
final Filter filter,
final String fileName,
final String level,
final boolean immediateFlush,
final boolean append,
final boolean bufferedIo,
final int bufferSize,
final String rollingPolicyClassName,
final String activeFileName,
final String fileNamePattern,
final int minIndex,
final int maxIndex,
final TriggeringPolicy triggeringPolicy,
final Configuration configuration) {
final org.apache.logging.log4j.core.Layout<?> fileLayout = LayoutAdapter.adapt(layout);
final boolean actualImmediateFlush = bufferedIo ? false : immediateFlush;
final org.apache.logging.log4j.core.Filter fileFilter = buildFilters(level, filter);
if (rollingPolicyClassName == null) {
LOGGER.error("Unable to create RollingFileAppender, no rolling policy provided.");
return null;
}
final String actualFileName = activeFileName != null ? activeFileName : fileName;
if (actualFileName == null) {
LOGGER.error("Unable to create RollingFileAppender, no file name provided.");
return null;
}
if (fileNamePattern == null) {
LOGGER.error("Unable to create RollingFileAppender, no file name pattern provided.");
return null;
}
final DefaultRolloverStrategy.Builder rolloverStrategyBuilder = DefaultRolloverStrategy.newBuilder();
switch (rollingPolicyClassName) {
case FIXED_WINDOW_ROLLING_POLICY:
rolloverStrategyBuilder.withMin(Integer.toString(minIndex)).withMax(Integer.toString(maxIndex));
break;
case TIME_BASED_ROLLING_POLICY:
break;
default:
LOGGER.warn("Unsupported rolling policy: {}", rollingPolicyClassName);
}
final TriggeringPolicy actualTriggeringPolicy;
if (triggeringPolicy != null) {
actualTriggeringPolicy = triggeringPolicy;
} else if (rollingPolicyClassName.equals(TIME_BASED_ROLLING_POLICY)) {
actualTriggeringPolicy = TimeBasedTriggeringPolicy.newBuilder().build();
} else {
LOGGER.error("Unable to create RollingFileAppender, no triggering policy provided.");
return null;
}
return AppenderWrapper.adapt(RollingFileAppender.newBuilder()
.withAppend(append)
.setBufferedIo(bufferedIo)
.setBufferSize(bufferedIo ? bufferSize : 0)
.setConfiguration(configuration)
.withFileName(actualFileName)
.withFilePattern(fileNamePattern)
.setFilter(fileFilter)
.setImmediateFlush(actualImmediateFlush)
.setLayout(fileLayout)
.setName(name)
.withPolicy(actualTriggeringPolicy)
.withStrategy(rolloverStrategyBuilder.build())
.build());
}