public static void setLayout( Layout layout ) { LogWriter.layout = layout; // save for later creation of new files... Enumeration<?> appenders = logWriter.pentahoLogger.getAllAppenders(); while ( appenders.hasMoreElements() ) { Appender appender = (Appender) appenders.nextElement(); if ( appender instanceof Log4jConsoleAppender || appender instanceof Log4jFileAppender ) { appender.setLayout( layout ); } } }
public Object invoke(String operationName, Object params[], String signature[]) throws MBeanException, ReflectionException { if(operationName.equals("activateOptions") && appender instanceof OptionHandler) { OptionHandler oh = (OptionHandler) appender; oh.activateOptions(); return "Options activated."; } else if (operationName.equals("setLayout")) { Layout layout = (Layout) OptionConverter.instantiateByClassName((String) params[0], Layout.class, null); appender.setLayout(layout); registerLayoutMBean(layout); } return null; }
appender.setLayout(parseLayout(currentElement));
null); if(layout != null) { appender.setLayout(layout); LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
@Test public void logged_exceptions_are_formatted_per_line_when_treating_throwable_as_lines() throws Exception { ByteArrayOutputStream output = new ByteArrayOutputStream(); LineAwareLayout lineAwareLayout = new LineAwareLayout(); lineAwareLayout.setLineLayout(new PatternLayout("%m" + delimiter)); Appender appender = new WriterAppender(lineAwareLayout, output); appender.setName("TestLog"); appender.setLayout(lineAwareLayout); Logger testLogger = LogManager.getLogger("test-logger"); testLogger.addAppender(appender); testLogger.setLevel(Level.INFO); Exception ex = new Exception("SOMETHING BAD HAPPEN\nNO REALLY IT'S VERY BAD\n\ntrust me"); ex.setStackTrace(new StackTraceElement[]{new StackTraceElement("CLAZZ", "MEETOD", "FEEL", 123)}); testLogger.info(ex, ex); String expectedLog = String.join(delimiter, ex.toString().split("\n")) + delimiter + "\tat CLAZZ.MEETOD(FEEL:123)" + delimiter; assertEquals(expectedLog, output.toString()); }
@Test public void messages_over_multiple_lines_are_formatted_per_line() throws Exception { ByteArrayOutputStream output = new ByteArrayOutputStream(); LineAwareLayout lineAwareLayout = new LineAwareLayout(); lineAwareLayout.setLineLayout(new PatternLayout("%m" + delimiter)); Appender appender = new WriterAppender(lineAwareLayout, output); appender.setName("TestLog"); appender.setLayout(lineAwareLayout); Logger testLogger = LogManager.getLogger("test-logger"); testLogger.addAppender((appender)); testLogger.setLevel(Level.INFO); String eventMessage = "test message\nwith\nmultiple lines"; testLogger.info(eventMessage); String expectedLog = String.join(delimiter, eventMessage.split("\n")) + delimiter; assertEquals(expectedLog, output.toString()); }
@Test public void messages_get_the_message_format_applied_after_the_line_format() throws Exception { ByteArrayOutputStream output = new ByteArrayOutputStream(); String extraLine = "\nTHESE NEWLINES SHOULD NOT GET AFFECTED BY THE LINE FORMAT\n"; LineAwareLayout lineAwareLayout = new LineAwareLayout(); lineAwareLayout.setLineLayout(new PatternLayout("%m" + delimiter)); lineAwareLayout.setMessageLayout(new PatternLayout("%m" + extraLine)); Appender appender = new WriterAppender(lineAwareLayout, output); appender.setName("TestLog"); appender.setLayout(lineAwareLayout); Logger testLogger = LogManager.getLogger("test-logger"); testLogger.addAppender((appender)); testLogger.setLevel(Level.INFO); String eventMessage = "test message\nwith\nmultiple lines"; testLogger.info(eventMessage); String expectedLog = String.join(delimiter, eventMessage.split("\n")) + delimiter + extraLine; assertEquals(expectedLog, output.toString()); }
public Object invoke(String operationName, Object params[], String signature[]) throws MBeanException, ReflectionException { if(operationName.equals("activateOptions") && appender instanceof OptionHandler) { OptionHandler oh = (OptionHandler) appender; oh.activateOptions(); return "Options activated."; } else if (operationName.equals("setLayout")) { Layout layout = (Layout) OptionConverter.instantiateByClassName((String) params[0], Layout.class, null); appender.setLayout(layout); registerLayoutMBean(layout); } return null; }
appender.setLayout(parseLayout(currentElement));
appender.setLayout(parseLayout(currentElement));
null); if(layout != null) { appender.setLayout(layout); LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
/** * Appends a line break to the logger pattern (default behavior). */ public static void enableNewLine() { Appender appender = Logger.getRootLogger().getAppender("stdout"); appender.setLayout(defaultLayout); } }
@Override public void setLayout(Layout arg0) { delegate().setLayout(arg0); }
/** * Construct a new instance, possibly applying a {@code Layout} to the given appender instance. * * @param appender the appender to delegate to * @param applyLayout {@code true} to apply an emulated layout, {@code false} otherwise */ public Log4jAppenderHandler(final Appender appender, final boolean applyLayout) { this.applyLayout = applyLayout; if (applyLayout) { appender.setLayout(null); } appenderUpdater.set(this, appender); }
null); if(layout != null) { appender.setLayout(layout); LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
private static Appender getAppender() { if (appender == null) { PatternLayout patternLayout = new PatternLayout(); patternLayout.setConversionPattern("%d{yyyy-MM-dd HH:mm:ss} <%X{AWSRequestId}> %-5p %c{1}:%L - %m%n"); appender = new LambdaAppender(); appender.setLayout(patternLayout); } return appender; }
/** * Remove the line break form the logger pattern. Subsequent writes to stdout are printed to the same line. */ public static void disableNewLine() { Appender appender = Logger.getRootLogger().getAppender("stdout"); defaultLayout = (PatternLayout)appender.getLayout(); PatternLayout newLayout = new PatternLayout(defaultLayout.getConversionPattern().replace("%n","")); appender.setLayout(newLayout); }
@Override public void setFormatter(final Formatter newFormatter) throws SecurityException { if (applyLayout) { final Appender appender = this.appender; if (appender != null) { appender.setLayout(new FormatterLayout(newFormatter)); } } super.setFormatter(newFormatter); }
@Override public void setFormatter(final Formatter newFormatter) throws SecurityException { if (applyLayout) { final Appender appender = this.appender; if (appender != null) { appender.setLayout(new FormatterLayout(newFormatter)); } } super.setFormatter(newFormatter); }
public BetterCommandLine() { BasicConfigurator.configure(); LogManager.getRootLogger().setLevel(Level.OFF); Appender appender = (Appender)LogManager.getRootLogger().getAllAppenders().nextElement(); appender.setLayout(new PatternLayout("%d{HH:mm:ss,SSS} [%t] %-5p %c{2} - %m%n")); }