/** * Add an appender to Log4j which sends all INFO+ messages to a separate file which will be used * later to scan for suspect strings. The pattern of the messages conforms to the original log * format so that hydra will be able to parse them. */ private static void addSuspectFileAppender(final String workspaceDir) { final String suspectFilename = new File(workspaceDir, SUSPECT_FILENAME).getAbsolutePath(); final LoggerContext appenderContext = ((org.apache.logging.log4j.core.Logger) LogManager .getLogger(Configuration.MAIN_LOGGER_NAME)) .getContext(); final PatternLayout layout = PatternLayout.createLayout( "[%level{lowerCase=true} %date{yyyy/MM/dd HH:mm:ss.SSS z} <%thread> tid=%tid] %message%n%throwable%n", null, null, null, Charset.defaultCharset(), true, false, "", ""); final FileAppender fileAppender = FileAppender.createAppender(suspectFilename, "true", "false", DUnitLauncher.class.getName(), "true", "false", "false", "0", layout, null, null, null, appenderContext.getConfiguration()); fileAppender.start(); LoggerConfig loggerConfig = appenderContext.getConfiguration().getLoggerConfig(Configuration.MAIN_LOGGER_NAME); loggerConfig.addAppender(fileAppender, Level.INFO, null); }
public static void appendFileLogger(Level level, String name, Path filePath) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); Layout layout = PatternLayout.createLayout("%d{HH:mm} [%-5p] %msg%n", null, config, null, null, true, false, null, null); Appender appender = FileAppender.createAppender(filePath.toFile().getAbsolutePath(), "true", "false", name, "true", "false", "false", "8192", layout, null, "false", null, config); appender.start(); config.getRootLogger().addAppender(appender, level, null); ctx.updateLoggers(); }
public static void addFileAppender(final String loggerPath, final File logFile, final AppConfig appConfig) { // retrieve the logger context LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false); Configuration configuration = loggerContext.getConfiguration(); // retrieve the root logger config LoggerConfig loggerConfig = configuration.getLoggerConfig(loggerPath); loggerConfig.setLevel(Level.toLevel(appConfig.getTcLogLevel())); // Define log pattern layout PatternLayout layout = PatternLayout.createLayout(DEFAULT_LOGGER_PATTERN, null, null, null, Charset.defaultCharset(), false, false, null, null); // create the appenders FileAppender fileAppender = FileAppender.createAppender(logFile.getAbsolutePath(), "true", "false", "fileAppender", "true", "true", "true", "8192", layout, null, "false", null, null); fileAppender.start(); // add the appenders loggerConfig.addAppender(fileAppender, Level.toLevel(appConfig.getTcLogLevel()), null); loggerContext.updateLoggers(); }