Refine search
@Test public void testParameterizedMessage() { for (final Appender appender : root.getAppenders().values()) { root.removeAppender(appender); } // set up appender final AbstractStringLayout layout = Rfc5424Layout.createLayout(Facility.LOCAL0, "Event", 3692, true, "RequestContext", null, null, true, null, "ATM", null, "key1, key2, locale", null, null, null, true, null, null); final ListAppender appender = new ListAppender("List", null, layout, true, false); appender.start(); // set appender on root and set level to debug root.addAppender(appender); root.setLevel(Level.DEBUG); root.info("Hello {}", "World"); try { final List<String> list = appender.getMessages(); assertTrue("Not enough list entries", list.size() > 0); final String message = list.get(0); assertTrue("Incorrect message. Expected - Hello World, Actual - " + message, message.contains("Hello World")); } finally { root.removeAppender(appender); appender.stop(); } } }
/** * 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); }
@Override public void setLevel(Level level) { this.level = level; org.apache.logging.log4j.Level l = org.apache.logging.log4j.Level.toLevel(level.getName(), org.apache.logging.log4j.Level.ERROR); logger.setLevel(l); logger.getContext().getConfiguration().getLoggerConfig(this.logger.getName()).setLevel(l); }
protected void removeAllAppenders(org.apache.logging.log4j.core.Logger logger) { Map<String, Appender> appenders = logger.getAppenders(); if (appenders != null) { for (Appender appender : appenders.values()) { logger.removeAppender(appender); } } } }
protected void activateAppender(org.apache.logging.log4j.core.Logger logger) { removeAllAppenders(this.logger); Map<String, Appender> appenders = null; if ((appenders = logger.getAppenders()) != null) { for (Appender appender : appenders.values()) { this.logger.addAppender(appender); } } }
protected void initRootLogger(final Appender appender) { root.addAppender(appender); root.setAdditive(false); root.setLevel(Level.DEBUG); }
final Map<String, Appender> appenders = this.rootLogger.getAppenders(); for (final Appender appender : appenders.values()) { this.rootLogger.removeAppender(appender); final Configuration configuration = rootLogger.getContext().getConfiguration(); this.rootLogger.addAppender(appender); this.rootLogger.setLevel(Level.DEBUG); this.rootLogger.debug("starting mdc pattern test"); this.rootLogger.debug("empty mdc"); this.rootLogger.debug("filled mdc"); this.rootLogger.error("finished mdc pattern test", new NullPointerException("test")); this.checkContains("message: \"starting mdc pattern test\"", list); for (final Appender app : appenders.values()) { this.rootLogger.addAppender(app);
@AfterClass public static void tearDownStatic() { final Logger logger = (Logger) LogManager.getLogger( LoggingRequestLogger.class); logger.removeAppender(appender); appender.stop(); }
String getLogDir(Configuration conf) { String logDir = conf.get("hive.log.dir"); if (logDir == null) { logDir = System.getProperty("hive.log.dir"); } if (logDir != null) { return logDir; } LoggerContext context = (LoggerContext)LogManager.getContext(false); for (Logger logger: context.getLoggers()) { for (Appender appender: logger.getAppenders().values()) { if (appender instanceof AbstractOutputStreamAppender) { OutputStreamManager manager = ((AbstractOutputStreamAppender<?>)appender).getManager(); if (manager instanceof FileManager) { String fileName = ((FileManager)manager).getFileName(); if (fileName != null) { return fileName.substring(0, fileName.lastIndexOf('/')); } } } } } return null; }
@BeforeClass public static void setUpStatic() { appender = OutputStreamAppender .newBuilder() .setName("test stream") .setTarget(baos) .setLayout(JsonLayout.createLayout(false, true, false, true, true, StandardCharsets.UTF_8)) .build(); final Logger logger = (Logger) LogManager.getLogger(LoggingRequestLogger.class); appender.start(); logger.addAppender(appender); }
@Test public void test() { String testLog = "testing"; Logger logger = (Logger) LogManager.getLogger(TestLoggingEventStringSerde.class); LogEvent log = Log4jLogEvent.newBuilder() .setLevel(logger.getLevel()) .setLoggerName(logger.getName()) .setMessage(new SimpleMessage(testLog)) .setThrown(null) .build(); LoggingEventStringSerde loggingEventStringSerde = new LoggingEventStringSerde(); assertNull(loggingEventStringSerde.fromBytes(null)); assertNull(loggingEventStringSerde.toBytes(null)); assertArrayEquals(testLog.getBytes(), loggingEventStringSerde.toBytes(log)); // only the log messages are guaranteed to be equivalent assertEquals(log.getMessage().toString(), loggingEventStringSerde.fromBytes(testLog.getBytes()).getMessage().toString()); } }
private void testCompressedLayout(final CompressionType compressionType, final boolean includeStacktrace, final boolean includeThreadContext, String host, final boolean includeNullDelimiter) throws IOException { for (final Appender appender : root.getAppenders().values()) { root.removeAppender(appender); .setConfiguration(ctx.getConfiguration()) .setHost(host) .setAdditionalFields(new KeyValuePair[] { root.addAppender(eventAppender); root.addAppender(rawAppender); root.addAppender(formattedAppender); root.addAppender(encodedAppender); root.setLevel(Level.DEBUG); root.debug(LINE1); root.info(LINE2); root.error(LINE3, exception);
/** * Creates console appender with some reasonable default logging settings. * * @return Logger with auto configured console appender. */ public Logger createConsoleLogger() { // from http://logging.apache.org/log4j/2.x/manual/customconfig.html final LoggerContext ctx = impl.getContext(); final Configuration cfg = ctx.getConfiguration(); PatternLayout.Builder builder = PatternLayout.newBuilder() .withPattern("%d{ISO8601}][%-5p][%t][%c{1}] %m%n") .withCharset(Charset.defaultCharset()) .withAlwaysWriteExceptions(false) .withNoConsoleNoAnsi(false); PatternLayout layout = builder.build(); ConsoleAppender.Builder consoleAppenderBuilder = ConsoleAppender.newBuilder() .withName(CONSOLE_APPENDER) .withLayout(layout); ConsoleAppender consoleApp = consoleAppenderBuilder.build(); consoleApp.start(); cfg.addAppender(consoleApp); cfg.getRootLogger().addAppender(consoleApp, Level.TRACE, null); ctx.updateLoggers(cfg); return ctx.getRootLogger(); }
public LoggerConfig getLoggerConfig() { final Logger logger = getLogger(); final LoggerContext context = logger.getContext(); return context.getConfiguration().getLoggerConfig(logger.getName()); }
public Slf4jLog4j2AdapterActivateOption(Object logger) { super(null); try { org.apache.logging.log4j.core.Logger log4j2Logger = (org.apache.logging.log4j.core.Logger)loggerField.get( logger); super.logger = log4j2Logger; super.configuration = super.logger.getContext().getConfiguration(); } catch (Exception e) { throw new RuntimeException("logger must be instanceof org.apache.logging.slf4j.Log4jLogger", e); } }
@Test public void testTcpAppenderNoWait() throws Exception { // @formatter:off final SocketAppender appender = SocketAppender.newBuilder() .withHost("localhost") .withPort(ERROR_PORT) .withReconnectDelayMillis(100) .withName("test") .withImmediateFail(false) .withIgnoreExceptions(false) .withLayout(JsonLayout.newBuilder().setProperties(true).build()) .build(); // @formatter:on appender.start(); // set appender on root and set level to debug logger.addAppender(appender); logger.setAdditive(false); logger.setLevel(Level.DEBUG); try { logger.debug("This message is written because a deadlock never."); fail("No Exception was thrown"); } catch (final Exception ex) { // TODO: move exception to @Test(expect = Exception.class) // Failure is expected. // ex.printStackTrace(); } }
public void localJobDebugger(int exitVal, String taskId) { StringBuilder sb = new StringBuilder(); sb.append("\n"); sb.append("Task failed!\n"); sb.append("Task ID:\n " + taskId + "\n\n"); sb.append("Logs:\n"); console.printError(sb.toString()); for (Appender appender : ((Logger) LogManager.getRootLogger()).getAppenders().values()) { if (appender instanceof FileAppender) { console.printError(((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { console.printError(((RollingFileAppender) appender).getFileName()); } } }
appender.start(); final LoggerContext context = LoggerContext.getContext(); final Logger root = context.getLogger("SMTPAppenderTest"); root.addAppender(appender); root.setAdditive(false); root.setLevel(Level.DEBUG); root.debug("Debug message #1"); root.debug("Debug message #2"); root.debug("Debug message #3"); root.debug("Debug message #4"); root.error("Error with exception", new RuntimeException("Exception message")); root.error("Error message #2");