Java 类org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender 实例源码

项目:cas-5.1.0    文件:LoggingOutputSocketMessagingController.java   
private void registerLogFileTailThreads() throws IOException {
    final Collection<String> outputFileNames = new HashSet<>();
    final Collection<Appender> loggerAppenders = this.loggerContext.getConfiguration().getAppenders().values();
    loggerAppenders.forEach(appender -> {
        if (appender instanceof FileAppender) {
            outputFileNames.add(((FileAppender) appender).getFileName());
        } else if (appender instanceof RandomAccessFileAppender) {
            outputFileNames.add(((RandomAccessFileAppender) appender).getFileName());
        } else if (appender instanceof RollingFileAppender) {
            outputFileNames.add(((RollingFileAppender) appender).getFileName());
        } else if (appender instanceof MemoryMappedFileAppender) {
            outputFileNames.add(((MemoryMappedFileAppender) appender).getFileName());
        } else if (appender instanceof RollingRandomAccessFileAppender) {
            outputFileNames.add(((RollingRandomAccessFileAppender) appender).getFileName());
        }
    });

    outputFileNames.forEach(s -> {
        final Tailer t = new Tailer(new File(s), new LogTailerListener(), 100, false, true);
        final Thread thread = new Thread(t);
        thread.setPriority(Thread.MIN_PRIORITY);
        thread.setName(s);
        thread.start();
    });
}
项目:xsharing-services-router    文件:LogFileRetriever.java   
/**
 * File appender types do not share a "write-to-file" superclass.
 */
private String extractFileName(Appender a) {
    if (a instanceof FileAppender) {
        return ((FileAppender) a).getFileName();

    } else if (a instanceof RollingFileAppender) {
        return ((RollingFileAppender) a).getFileName();

    } else if (a instanceof RollingRandomAccessFileAppender) {
        return ((RollingRandomAccessFileAppender) a).getFileName();

    } else if (a instanceof RandomAccessFileAppender) {
        return ((RandomAccessFileAppender) a).getFileName();

    } else if (a instanceof MemoryMappedFileAppender) {
        return ((MemoryMappedFileAppender) a).getFileName();

    } else {
        return null;
    }
}
项目:steve-plugsurfing    文件:LogFileRetriever.java   
/**
 * File appender types do not share a "write-to-file" superclass.
 */
private String extractFileName(Appender a) {
    if (a instanceof FileAppender) {
        return ((FileAppender) a).getFileName();

    } else if (a instanceof RollingFileAppender) {
        return ((RollingFileAppender) a).getFileName();

    } else if (a instanceof RollingRandomAccessFileAppender) {
        return ((RollingRandomAccessFileAppender) a).getFileName();

    } else if (a instanceof RandomAccessFileAppender) {
        return ((RandomAccessFileAppender) a).getFileName();

    } else if (a instanceof MemoryMappedFileAppender) {
        return ((MemoryMappedFileAppender) a).getFileName();

    } else {
        return null;
    }
}
项目:syncope    文件:TestFileAuditAppender.java   
@Override
public void initTargetAppender() {
    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    // get log file path from existing file appender
    RollingRandomAccessFileAppender mainFile =
            (RollingRandomAccessFileAppender) ctx.getConfiguration().getAppender("mainFile");

    String pathPrefix = mainFile == null
            ? System.getProperty("user.dir") + StringUtils.replace("/target/log", "/", File.separator)
            + File.separator
            : StringUtils.replace(mainFile.getFileName(), "core.log", StringUtils.EMPTY);

    targetAppender = FileAppender.newBuilder()
            .withName(getTargetAppenderName())
            .withAppend(true)
            .withFileName(pathPrefix + getTargetAppenderName() + ".log")
            .withLayout(
                    PatternLayout.newBuilder()
                            .withPattern("%d{HH:mm:ss.SSS} %-5level %logger - %msg%n")
                            .build()).
            build();
}
项目:syncope    文件:TestFileRewriteAuditAppender.java   
@Override
public void initTargetAppender() {
    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);

    // get log file path from existing file appender
    RollingRandomAccessFileAppender mainFile =
            (RollingRandomAccessFileAppender) ctx.getConfiguration().getAppender("mainFile");
    String pathPrefix = StringUtils.replace(mainFile.getFileName(), "core.log", StringUtils.EMPTY);

    targetAppender = FileAppender.newBuilder().
            withName(getTargetAppenderName()).
            withAppend(true).
            withFileName(pathPrefix + getTargetAppenderName() + ".log").
            withLayout(
                    PatternLayout.newBuilder()
                            .withPattern("%d{HH:mm:ss.SSS} %-5level %logger - %msg%n")
                            .build())
            .build();
}
项目:steve    文件:LogFileRetriever.java   
/**
 * File appender types do not share a "write-to-file" superclass.
 */
private String extractFileName(Appender a) {
    if (a instanceof FileAppender) {
        return ((FileAppender) a).getFileName();

    } else if (a instanceof RollingFileAppender) {
        return ((RollingFileAppender) a).getFileName();

    } else if (a instanceof RollingRandomAccessFileAppender) {
        return ((RollingRandomAccessFileAppender) a).getFileName();

    } else if (a instanceof RandomAccessFileAppender) {
        return ((RandomAccessFileAppender) a).getFileName();

    } else if (a instanceof MemoryMappedFileAppender) {
        return ((MemoryMappedFileAppender) a).getFileName();

    } else {
        return null;
    }
}
项目:HeliosStreams    文件:LoggingWriter.java   
/**
 * Creates a new {@link RollingFileAppender}
 * @param fileName The log file
 * @param loggingConfig The logging config
 * @param layout The layout
 * @param strategy the rollover strategy
 * @param rolledFileFormat The log file roll pattern
 * @param trigger The roll trigger
 * @return the new appender
 */
protected Appender createRollingRandomAccessFileAppender(final String fileName, Configuration loggingConfig, PatternLayout layout,
        final DefaultRolloverStrategy strategy, final String rolledFileFormat, final TriggeringPolicy trigger) {

       RollingRandomAccessFileManager fileManager = RollingRandomAccessFileManager.getRollingRandomAccessFileManager(
            fileName, 
            rolledFileFormat, 
            true, 
            true,
            8192,
            trigger, 
            strategy, 
            null, 
            layout              
            );
       trigger.initialize(fileManager);

    return RollingRandomAccessFileAppender.createAppender(
            fileName,                       // file name
            rolledFileFormat,               // rolled file name pattern
            "true",                         // append
            getClass().getSimpleName(),     // appender name
            "true",                         // immediate flush
            "8192",                         // buffer size              
            trigger,                        // triggering policy
            strategy,                       // rollover strategy
            layout,                         // layout
            null,                           // filter
            "true",                         // ignore exceptions 
            null,                           // advertise
            null,                           // advertise uri
            loggingConfig);                 // config
}
项目:logging-log4j2    文件:CronTriggeringPolicyTest.java   
/**
 * Tests LOG4J2-1740 Add CronTriggeringPolicy programmatically leads to NPE
 */
@Test
public void testRollingRandomAccessFileAppender() {
    // @formatter:off
    RollingRandomAccessFileAppender.newBuilder()
        .withName("test2")
        .withFileName("target/testcmd2.log")
        .withFilePattern("target/testcmd2.log.%d{yyyy-MM-dd}")
        .withPolicy(createPolicy())
        .withStrategy(createStrategy())
        .setConfiguration(configuration)
        .build();
    // @formatter:on
}
项目:cas-5.1.0    文件:LoggingConfigController.java   
/**
 * Gets configuration as JSON.
 * Depends on the log4j core API.
 *
 * @param request  the request
 * @param response the response
 * @return the configuration
 * @throws Exception the exception
 */
@GetMapping(value = "/getConfiguration")
@ResponseBody
public Map<String, Object> getConfiguration(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
    ensureEndpointAccessIsAuthorized(request, response);

    Assert.notNull(this.loggerContext);

    final Collection<Map<String, Object>> configuredLoggers = new HashSet<>();
    getLoggerConfigurations().forEach(config -> {
        final Map<String, Object> loggerMap = new HashMap<>();
        loggerMap.put("name", StringUtils.defaultIfBlank(config.getName(), LOGGER_NAME_ROOT));
        loggerMap.put("state", config.getState());
        if (config.getProperties() != null) {
            loggerMap.put("properties", config.getProperties());
        }
        loggerMap.put("additive", config.isAdditive());
        loggerMap.put("level", config.getLevel().name());
        final Collection<String> appenders = new HashSet<>();
        config.getAppenders().keySet().stream().map(key -> config.getAppenders().get(key)).forEach(appender -> {
            final ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.JSON_STYLE);
            builder.append("name", appender.getName());
            builder.append("state", appender.getState());
            builder.append("layoutFormat", appender.getLayout().getContentFormat());
            builder.append("layoutContentType", appender.getLayout().getContentType());
            if (appender instanceof FileAppender) {
                builder.append(FILE_PARAM, ((FileAppender) appender).getFileName());
                builder.append(FILE_PATTERN_PARAM, "(none)");
            }
            if (appender instanceof RandomAccessFileAppender) {
                builder.append(FILE_PARAM, ((RandomAccessFileAppender) appender).getFileName());
                builder.append(FILE_PATTERN_PARAM, "(none)");
            }
            if (appender instanceof RollingFileAppender) {
                builder.append(FILE_PARAM, ((RollingFileAppender) appender).getFileName());
                builder.append(FILE_PATTERN_PARAM, ((RollingFileAppender) appender).getFilePattern());
            }
            if (appender instanceof MemoryMappedFileAppender) {
                builder.append(FILE_PARAM, ((MemoryMappedFileAppender) appender).getFileName());
                builder.append(FILE_PATTERN_PARAM, "(none)");
            }
            if (appender instanceof RollingRandomAccessFileAppender) {
                builder.append(FILE_PARAM, ((RollingRandomAccessFileAppender) appender).getFileName());
                builder.append(FILE_PATTERN_PARAM, ((RollingRandomAccessFileAppender) appender).getFilePattern());
            }
            appenders.add(builder.build());
        });
        loggerMap.put("appenders", appenders);
        configuredLoggers.add(loggerMap);
    });
    final Map<String, Object> responseMap = new HashMap<>();
    responseMap.put("loggers", configuredLoggers);
    return responseMap;
}
项目:NoMoreOversleeps    文件:Logging.java   
public static void initialize()
{
    // REDIRECT JAVA UTIL LOGGER TO LOG4J2 (MUST BE BEFORE ALL LOG4J2 CALLS)
    System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");

    // STARTING CONFIGURATION
    final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false);
    org.apache.logging.log4j.core.config.Configuration configuration = loggerContext.getConfiguration();
    LoggerConfig rootLogger = configuration.getLoggerConfig("");
    rootLogger.setLevel(Level.ALL);

    // PATTERNS
    PatternLayout consolePattern = PatternLayout.createLayout("%d{yyyy-MM-dd HH:mm:ss} [%level] [%logger{1}]: %msg%n", configuration, null, null, true, false, null, null);
    PatternLayout logfilePattern = PatternLayout.createLayout("%d{yyyy-MM-dd HH:mm:ss} [%level] [%logger]: %msg%n", configuration, null, null, true, false, null, null);

    // LOG FILE STRINGS
    String logName = "NoMoreOversleeps";
    String logFilePrefix = PlatformData.installationDirectory.getAbsolutePath().replace("\\", "/") + "/logs/" + WordUtils.capitalizeFully(logName, new char[] { '_', '-', ' ' }).replaceAll("_", "").replaceAll("_", "").replaceAll("-", "").replaceAll(" ", "");

    // CLIENT LOG FILE APPENDER (ROLLING)
    RollingRandomAccessFileAppender clientInfoLogFile = RollingRandomAccessFileAppender.createAppender(logFilePrefix + "-0.log", logFilePrefix + "-%i.log", null, "InfoFile", null, null, OnStartupTriggeringPolicy.createPolicy(), DefaultRolloverStrategy.createStrategy("2", "1", "min", null, configuration), logfilePattern, null, null, null, null, configuration);
    clientInfoLogFile.start();
    configuration.addAppender(clientInfoLogFile);
    rootLogger.addAppender(clientInfoLogFile, Level.INFO, null);

    /*
    // FINER DETAIL LOG FILE (REPLACED ON EACH RUN)
    RandomAccessFileAppender detailLogFile = RandomAccessFileAppender.createAppender(logFilePrefix + "-latest-fine.log", "false", "DetailFile", null, null, null, logfilePattern, null, null, null, configuration);
    detailLogFile.start();
    configuration.addAppender(detailLogFile);
    rootLogger.addAppender(detailLogFile, Level.ALL, null);
    */

    // CONSOLE APPENDER
    ConsoleAppender console = ConsoleAppender.createAppender(consolePattern, null, "SYSTEM_OUT", "Console", null, null); // must be named "Console" to work correctly
    console.start();
    configuration.addAppender(console);
    rootLogger.addAppender(console, Level.INFO, null);

    // UPDATE LOGGERS
    loggerContext.updateLoggers();

    // REDIRECT STDOUT AND STDERR TO LOG4J2
    System.setOut(new PrintStream(new StdOutErrOutputStream(LogManager.getLogger("java.lang.System.out"), Level.INFO)));
    System.setErr(new PrintStream(new StdOutErrOutputStream(LogManager.getLogger("java.lang.System.err"), Level.ERROR)));

    // set main engine log
    log = LogManager.getLogger();

    // print opening header
    log.info("===============================================================================================================");
    log.info(" NoMoreOversleeps v" + Main.VERSION);
    log.info(" (c) Robert James Dennington, " + Math.max(Calendar.getInstance().get(Calendar.YEAR), minCopyrightYear));
    log.info("===============================================================================================================");
    log.debug("The system log manager is " + System.getProperty("java.util.logging.manager"));
    log.info("Install path: " + PlatformData.installationDirectory.getAbsolutePath());
    log.info("Computer name: " + PlatformData.computerName);
    log.info("Platform: " + PlatformData.platformName);
}
项目:NapBot    文件:Logging.java   
public static void initialize(Application application)
{
    // STORE APPLICATION FOR LATER USE
    Logging.application = application;

    // REDIRECT JAVA UTIL LOGGER TO LOG4J2 (MUST BE BEFORE ALL LOG4J2 CALLS)
    System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");

    // STARTING CONFIGURATION
    final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false);
    org.apache.logging.log4j.core.config.Configuration configuration = loggerContext.getConfiguration();
    LoggerConfig rootLogger = configuration.getLoggerConfig("");
    rootLogger.setLevel(Level.ALL);

    // PATTERNS
    PatternLayout consolePattern = PatternLayout.createLayout("%d{yyyy-MM-dd HH:mm:ss} [%level] [%logger{1}]: %msg%n", null, configuration, null, null, true, false, null, null);
    PatternLayout logfilePattern = PatternLayout.createLayout("%d{yyyy-MM-dd HH:mm:ss} [%level] [%logger]: %msg%n", null, configuration, null, null, true, false, null, null);

    // LOG FILE STRINGS
    String logFilePrefix = PlatformData.installationDirectory.getAbsolutePath().replace("\\", "/") + "/logs/" + WordUtils.capitalizeFully(application.getName(), new char[] { '_', '-', ' ' }).replaceAll("_", "").replaceAll("_", "").replaceAll("-", "").replaceAll(" ", "");

    // CLIENT LOG FILE APPENDER (ROLLING)
    RollingRandomAccessFileAppender clientInfoLogFile = RollingRandomAccessFileAppender.createAppender(logFilePrefix + "-0.log", logFilePrefix + "-%i.log", null, "InfoFile", null, null, OnStartupTriggeringPolicy.createPolicy(), DefaultRolloverStrategy.createStrategy("2", "1", "min", null, null, false, configuration), logfilePattern, null, null, null, null, configuration);
    clientInfoLogFile.start();
    configuration.addAppender(clientInfoLogFile);
    rootLogger.addAppender(clientInfoLogFile, Level.INFO, null);

    // FINER DETAIL LOG FILE (REPLACED ON EACH RUN)
    RandomAccessFileAppender detailLogFile = RandomAccessFileAppender.createAppender(logFilePrefix + "-latest-fine.log", "false", "DetailFile", null, null, null, logfilePattern, null, null, null, configuration);
    detailLogFile.start();
    configuration.addAppender(detailLogFile);
    rootLogger.addAppender(detailLogFile, Level.ALL, null);

    // CONSOLE APPENDER
    ConsoleAppender console = ConsoleAppender.createAppender(consolePattern, null, Target.SYSTEM_OUT, "Console", false, true); // must be named "Console" to work correctly
    console.start();
    configuration.addAppender(console);
    rootLogger.addAppender(console, Level.INFO, null);

    // UPDATE LOGGERS
    loggerContext.updateLoggers();

    // REDIRECT STDOUT AND STDERR TO LOG4J2
    System.setOut(new PrintStream(new StdOutErrOutputStream(LogManager.getLogger("java.lang.System.out"), Level.INFO)));
    System.setErr(new PrintStream(new StdOutErrOutputStream(LogManager.getLogger("java.lang.System.err"), Level.ERROR)));

    // set main engine log
    log = LogManager.getLogger();

    // print opening header
    log.info("===============================================================================================================");
    log.info(" " + application.getName() + " v" + application.getVersion());
    log.info(" (c) Robert James Dennington, " + Math.max(Calendar.getInstance().get(Calendar.YEAR), minCopyrightYear));
    log.info("===============================================================================================================");
    log.debug("The system log manager is " + System.getProperty("java.util.logging.manager"));
    log.info("Install path: " + PlatformData.installationDirectory.getAbsolutePath());
    log.info("Computer name: " + PlatformData.computerName);
    log.info("Platform: " + PlatformData.platformName);
}
项目:VoxelGamesLibv2    文件:ForwardHandler.java   
public ForwardHandler(@Nullable RollingRandomAccessFileAppender log4jAppender) {
    this.log4jAppender = log4jAppender;
}