Im Migrationg apache Log4j 1.x в Log 4j 2. Я не могу переписать этот кусок кода: LogToFileExecutor. Как я могу переписать - PullRequest
0 голосов
/ 17 марта 2020

Rolling Appender, какой класс мне использовать?

public void createLog4jLogger() {

    final PatternLayout layout = new PatternLayout() {
        @Override
        public String getHeader() {
            // return super.getHeader();
            // Get all column names & print them
            String columnName = "";
            if (fieldsToLog != null) {
                for (int index = 0; index < fieldsToLog.length; index++) {
                    columnName = (index == 0) ? (columnName + fieldsToLog[index].getDisplayName()) : (columnName
                            + ";" + fieldsToLog[index].getDisplayName());
                }
                columnName += ";\n";
            }
            return columnName;
        }
    };
    layout.getHeader();
    // layout.setConversionPattern("[%t]%m%n");
    layout.setConversionPattern("%m%n");
    RollingFileAppender rollingFileAppender = null;
    AsyncAppender asyncAppender = null;
    try {
        String name = getFileNameOnly(filterDetail.getFilterFileName());
        fileLogger = LogManager.getLogger(name);
        rollingFileAppender = new RollingFileAppender();
        rollingFileAppender.setLayout(layout);
        rollingFileAppender.setFile(filterDetail.getFilterFileName());
        rollingFileAppender.setAppend(true);
        rollingFileAppender.setName(name);
        // Added RollingPolicy to create folder for current day and save all
        // logs in that file.
        rollingFileAppender.setRollingPolicy(getCustomRollingPolicy());
        rollingFileAppender.setTriggeringPolicy(getTriggeringPolicy());
        rollingFileAppender.activateOptions();
        // Below two properties are set for better IO performance
        // rollingFileAppender.setBufferedIO(filterDetail.isBufferedIO());
        rollingFileAppender.setBufferedIO(false);
        // rollingFileAppender.setBufferSize(filterDetail.getBufferSize());
        // Append AsyncAppender to RollingAppender so that it will print
        // entire row event though it reached buffer size of
        // RollingFileAppender.
        asyncAppender = new AsyncAppender();
        asyncAppender.setBufferSize(100);
        asyncAppender.setBlocking(true);
        // asyncAppender.addAppender(rollingFileAppender);
        asyncAppender.activateOptions();
    } catch (Exception exception) {
        exception.printStackTrace();
        logger.error("Error in createLog4jLogger method of LogToFileExecutor : " + exception);
    }
    fileLogger.setLevel(Level.DEBUG);
    fileLogger.setAdditivity(false);
    fileLogger.addAppender(rollingFileAppender);
    fileLogger.addAppender(asyncAppender);
}

Где я могу установить

rollingFileAppender.setRollingPolicy(getCustomRollingPolicy());
rollingFileAppender.setTriggeringPolicy(getTriggeringPolicy());

и как мне это сделать

...