public static Collection<String> getLoggingMessages(RingBufferAppender...appenders) { List<LoggingEvent> events = new ArrayList<LoggingEvent>(); Layout layout = null; for (RingBufferAppender rba : appenders) { LoggingEvent e[] = rba.getLogEvents(); if (LOG.isDebugEnabled()) LOG.debug("Got " + e.length + " LoggingEvents for " + rba); CollectionUtil.addAll(events, e); if (layout == null) layout = rba.getLayout(); } // FOR if (events.isEmpty() == false) assert(layout != null); Collections.sort(events, new Comparator<LoggingEvent>() { @Override public int compare(LoggingEvent o1, LoggingEvent o2) { return (int)(o1.timeStamp - o2.timeStamp); } }); List<String> messages = new ArrayList<String>(); for (LoggingEvent event : events) { messages.add(layout.format(event)); } // FOR return (messages); }
void appendThrowableAsHTML(String s[], StringBuilder sbuf) { if( s != null ) { int len = s.length; if( len == 0 ) { return; } sbuf.append(Transform.escapeTags(s[0])); sbuf.append(Layout.LINE_SEP); for( int i = 1; i < len; i++ ) { sbuf.append("<br> "); sbuf.append(Transform.escapeTags(s[i])); sbuf.append(Layout.LINE_SEP); } } }
@Override public String getHeader() { StringBuilder sbuf = new StringBuilder(); sbuf.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); sbuf.append(Layout.LINE_SEP); sbuf.append("<html><head><title>"); sbuf.append(title); sbuf.append("</title><style type=\"text/css\"><!--"); sbuf.append(Layout.LINE_SEP); sbuf.append("body, table {font-family: arial,sans-serif; font-size: x-small;}"); sbuf.append(Layout.LINE_SEP); sbuf.append("th {background: #336699; color: #FFFFFF; text-align: left;}"); sbuf.append(Layout.LINE_SEP); sbuf.append("--></style></head><body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\"><hr size=\"1\">"); sbuf.append(Layout.LINE_SEP); sbuf.append("<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">"); sbuf.append(Layout.LINE_SEP); sbuf.append("<tr><th>Time</th><th>Context</th><th>Level</th><th>Category</th><th>Message</th></tr>"); sbuf.append(Layout.LINE_SEP); return sbuf.toString(); }
@Override protected void append(final LoggingEvent event) { final StringBuilder buffer = new StringBuilder(); buffer.append(layout.format(event)); if(layout.ignoresThrowable()) { final String[] trace = event.getThrowableStrRep(); if(trace != null) { buffer.append(Layout.LINE_SEP); for(final String t : trace) { buffer.append(t).append(Layout.LINE_SEP); } } } console.printf("\r%s%s%s", Ansi.ansi() .saveCursorPosition() .eraseLine(Ansi.Erase.ALL) .fg(Ansi.Color.MAGENTA) .restoreCursorPosition(), buffer.toString(), Ansi.ansi().reset()); }
public static void setupLogger(Config config) throws IOException { Layout layout = new PatternLayout("%d{" + DATE_FORMAT + "} %5p: %m%n"); Appender appender = new DailyRollingFileAppender( layout, config.getString("logger.file"), "'.'yyyyMMdd"); LogManager.resetConfiguration(); LogManager.getRootLogger().addAppender(new NullAppender()); logger = Logger.getLogger(LOGGER_NAME); logger.addAppender(appender); logger.setLevel(Level.toLevel(config.getString("logger.level"), Level.ALL)); // Workaround for "Bug 745866 - (EDG-45) Possible netty logging config problem" InternalLoggerFactory.setDefaultFactory(new InternalLoggerFactory() { @Override public InternalLogger newInstance(String string) { return new NettyInternalLogger(); } }); Log.logSystemInfo(); Log.info("Version: " + getAppVersion()); }
public LogUtil(LogConfig config, Object obj){ this.logConfig = config; if(LogConfig.logType == 0){ report = new ExtentReports(config.getExtentLogPath(),false); File configFile = new File(System.getProperty("user.dir") + "\\configs\\extent-config.xml"); if(configFile.exists()) { report.loadConfig(configFile); } testLog = report.startTest(String.valueOf(obj)); }else{ logger = Logger.getLogger(String.valueOf(obj)); Layout layout = new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} [%p] %c:%L �� %m%n"); try { Appender appender = new FileAppender(layout, config.getLog4jPath()); logger.addAppender(appender); } catch (IOException e) { e.printStackTrace(); } } }
public static Logger getLogger(final Class<?> cl, final String initFile, final String property) { Properties properties; Logger c = null; try { ManagerIni mi = initFile != null ? ManagerIni.createManagerIniFile(initFile) : ManagerIni.createManagerIniParameter(); properties = mi.getSession("FreedomLogger"); c = Logger.getLogger(cl.getCanonicalName(), myFactory); Layout layout = new PatternLayout(LAYOUT_DEFAULT); c.addAppender(new FileAppender(layout, properties.get(property).toString(), true)); } catch (Exception e) { e.printStackTrace(); } return c; }
private static void initializeLogger() throws IOException { String logConfigFileName = ApplicationArguments.getInstance().getLoggingConfigFileName(); if (logConfigFileName != null) { PropertyConfigurator.configure(logConfigFileName); } else { ApplicationFiles appFiles = new ApplicationFiles(); String logMessagePattern = "%-4r [%t] %-5p %c %x - %m%n"; Layout layout = new PatternLayout(logMessagePattern); File logsDir = new File(appFiles.getUserSettingsDirectory(), "logs"); File updateLogFile = new File(logsDir, "updater.log"); FileAppender appender = new FileAppender(layout, updateLogFile.getAbsolutePath()); LoggerController.registerLoggerFactory(new SquirrelLoggerFactory(appender, false)); } }
public NTEventLogAppender(String server, String source, Layout layout) { if (source == null) { source = "Log4j"; } if (layout == null) { this.layout = new TTCCLayout(); } else { this.layout = layout; } try { _handle = registerEventSource(server, source); } catch (Exception e) { e.printStackTrace(); _handle = 0; } }
/** * Tests CDATA element within exception. See bug 37560. */ public void testExceptionWithCDATA() throws Exception { Logger logger = Logger.getLogger("com.example.bar"); Level level = Level.INFO; String exceptionMessage ="<envelope><faultstring><![CDATA[The EffectiveDate]]></faultstring><envelope>"; LoggingEvent event = new LoggingEvent( "com.example.bar", logger, level, "Hello, World", new Exception(exceptionMessage)); Layout layout = createLayout(); String result = layout.format(event); Element parsedResult = parse(result); NodeList throwables = parsedResult.getElementsByTagName("log4j:throwable"); assertEquals(1, throwables.getLength()); StringBuffer buf = new StringBuffer(); for(Node child = throwables.item(0).getFirstChild(); child != null; child = child.getNextSibling()) { buf.append(child.getNodeValue()); } assertTrue(buf.toString().indexOf(exceptionMessage) != -1); }
@Override protected void append(LoggingEvent event) { if(this.layout == null) { logger.log(event.getLevel() + " " + event.getMessage()); return; } logger.log(this.layout.format(event)); //prints the Throwable from the log if(layout.ignoresThrowable()) { StringBuilder traceString = new StringBuilder(); String[] s = event.getThrowableStrRep(); if (s != null) { int len = s.length; for(int i = 0; i < len; i++) { traceString.append(s[i]); traceString.append(Layout.LINE_SEP); } } logger.log(traceString.toString()); } }
/** * Tests that the right logger message is executed if the sprite file is * invalid. */ @Test public void testMissingSprite() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); // Valid file name String inValidSpriteFile = "Sprite asdfsdfSheet"; SpriteLoader spriteLoader = new SpriteLoader(); try { // The functions to test spriteLoader.loadSpriteSheet(inValidSpriteFile, 32, 32); spriteLoader.getSprite(1, 0); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You are trying to use a")); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the right logger message is executed if an incorrect position * (on the sprite sheet) is entered. */ @Test public void testNegativeDimensions() { // Set up logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); // Valid file name String validSpriteFile = "peonSheet"; SpriteLoader spriteLoader = new SpriteLoader(); try { // The functions to test spriteLoader.loadSpriteSheet(validSpriteFile, 32, 32); spriteLoader.getSprite(-1, -1); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You are requesting a grid position")); } finally { LOGGER.removeAppender(appender); } }
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; }
/** * Tests that no logger message is executed for a valid frame setup. */ @Test public void validFrameInitialisation() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); try { // The functions to test frame = new Frame(mockSprite, 10); assertNotNull(frame.getFrame()); assertTrue(frame.getDuration() == 10); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertEquals("", logMessage); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the appropriate error message is displayed if the frame image * is null. */ @Test public void inValidFrame() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); try { // The functions to test frame = new Frame(null, 10); assertNull(frame.getFrame()); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You cannot have null frames")); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the appropriate logger message is executed if the duration is * less than or equal to 0. */ @Test public void inValidDuration() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); try { // The functions to test frame = new Frame(mockSprite, 0); assertTrue(frame.getDuration() == 0); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You cannot have a duration equal to or less than 0")); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the appropriate logger message is executed if the duration is * set to be less than or equal to 0. */ @Test public void invalidSettersDuration() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); frame = new Frame(mockSprite, 10); try { // The functions to test assertTrue(frame.getDuration() == 10); frame.setDuration(-1); assertTrue(frame.getDuration() == 10); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You cannot have a duration")); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that no logger message is executed if the duration is set to a * valid number. */ @Test public void validSettersDuration() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); frame = new Frame(mockSprite, 10); try { // The functions to test assertTrue(frame.getDuration() == 10); frame.setDuration(20); assertTrue(frame.getDuration() == 20); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertEquals("", logMessage); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the right logger message is executed if an invalid animation * initialisation is written (namely invalid frames entered) */ @Test public void invalidFramesAnimationInitialisation() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); standingRight.add(mockSprite); try { // The functions to test animation = new Animation(null, 10); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You cannot have null frames")); } finally { LOGGER.removeAppender(appender); } }
/** * Tests that the right logger message is executed if stop function is * executed incorrectly (namely invalid frames: null) */ @Test public void testInvalidStop() { // Set up of logger retrieval ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Layout layout = new SimpleLayout(); Appender appender = new WriterAppender(layout, outputStream); LOGGER.addAppender(appender); Image mockSprite = mock(Image.class); standingRight.add(mockSprite); animation = new Animation(null, 10); try { // The functions to test assertTrue(animation.getStopped()); assertTrue(animation.getFrames().size() <= 0); animation.stop(); String logMessage = outputStream.toString(); assertNotNull(logMessage); assertTrue(logMessage.contains("ERROR - You cannot have null frames")); } finally { LOGGER.removeAppender(appender); } }
public AsyncAppender createAsyncAppender(String name, Layout layout) { AsyncAppender async = new AsyncAppender(); async.setName(name); async.setBlocking(true); async.setBufferSize(config.getInt("core", "asyncLoggingBufferSize", 64)); async.setLocationInfo(false); if (shouldConfigure()) { async.addAppender(createAppender(site.logs_dir, name, layout)); } else { Appender appender = LogManager.getLogger(name).getAppender(name); if (appender != null) { async.addAppender(appender); } else { log.warn( "No appender with the name: " + name + " was found. " + name + " logging is disabled"); } } async.activateOptions(); return async; }
/** Instantiate a <code>OpenraspDailyRollingFileAppender</code> and open the file designated by <code>filename</code>. The opened filename will become the ouput destination for this appender. */ public OpenraspDailyRollingFileAppender(Layout layout, String filename, String datePattern) throws IOException { super(layout, filename, true); this.datePattern = datePattern; activateOptions(); }
public LogAppender(Layout layout, int maxlines) { this.layout = layout; this.maxlines = maxlines; this.lines = new ArrayList<>(); String line = layout.getHeader(); this.lines.add(line); }
@Test public void testRollingFileAppenderExt(@Injectable LoggingEvent event, @Injectable Layout layout) throws Exception { new Expectations() { { layout.format(event); result = "test"; } }; File cur = new File(System.getProperty("user.dir")); File temp = new File(cur, "temptestfile.log"); if (temp.exists()) { temp.delete(); } RollingFileAppenderExt ext = new RollingFileAppenderExt(); ext.setLayout(layout); ext.setLogPermission("rw-------"); ext.setFile(temp.getAbsolutePath()); ext.setFile(temp.getAbsolutePath(), false, false, 300000); Assert.assertEquals(ext.getLogPermission(), "rw-------"); Assert.assertTrue(temp.exists()); temp.delete(); ext.subAppend(event); Assert.assertTrue(temp.exists()); ext.close(); temp.delete(); Assert.assertFalse(temp.exists()); }
public String[] getLogMessages() { LoggingEvent[] events = this.getLogEvents(); String[] ret = new String[events.length]; Layout layout = this.getLayout(); for (int i = 0; i < events.length; i++) { ret[i] = layout.format(events[i]); } // FOR return (ret); }
@SuppressWarnings("unchecked") public static void enableRingBufferAppender(Logger logger, int bufferSize) { Layout l = null; if (LOG.isDebugEnabled()) LOG.debug(logger + " => " + logger.getAllAppenders()); for (Object o : CollectionUtil.iterable(logger.getAllAppenders())) { Appender a = (Appender)o; l = a.getLayout(); } // FOR if (l != null) { logger.removeAllAppenders(); logger.addAppender(new RingBufferAppender(bufferSize)); Logger.getRootLogger().info("Enabled RingBuffer logging for '" + logger.getName() + "'"); } }
@Override public void setLayout( Layout layout ) { super.setLayout(layout); // set the layout to the event processor as well if (eventProcessor != null) { eventProcessor.setLayout(layout); } }
/** * Constructs an instance from a Log4J event, using the specified layout. * * @throws RuntimeException if any error occurred during formatting or conversion. * Will include any root cause other than UnsupportedEncodingException. */ public LogMessage(LoggingEvent event, Layout layout) { try { StringWriter out = new StringWriter(1024); out.write(layout.format(event)); if ((event.getThrowableInformation() != null) && layout.ignoresThrowable()) { for (String traceline : event.getThrowableStrRep()) { out.write(traceline); out.write(Layout.LINE_SEP); } } out.close(); this.timestamp = event.getTimeStamp(); this.message = out.toString(); this.messageBytes = this.message.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UnsupportedEncodingException when converting to UTF-8"); } catch (Exception ex) { throw new RuntimeException("error creating LogMessage", ex); } }
@Override public String format(LoggingEvent event) { StringBuilder sbuf = new StringBuilder(); sbuf.append(Layout.LINE_SEP); sbuf.append("<tr><td>"); sbuf.append(dateFormat.format(new Date(event.timeStamp))); sbuf.append("</td><td>"); appendContextText(event, sbuf); sbuf.append("</td><td>"); appendLevelText(event, sbuf); sbuf.append("</td><td>"); appendLoggerName(event, sbuf); sbuf.append("</td>"); sbuf.append(Layout.LINE_SEP); sbuf.append("<td>"); sbuf.append(Transform.escapeTags(event.getRenderedMessage())); sbuf.append("</td></tr>"); String s[] = event.getThrowableStrRep(); if( s != null ) { sbuf.append(Layout.LINE_SEP); sbuf.append("<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\" colspan=\"5\">"); appendThrowableAsHTML(s, sbuf); sbuf.append("</td></tr>"); } return sbuf.toString(); }
@Override public String format(LoggingEvent event) { StringBuilder sbuf = new StringBuilder(60); sbuf.append(DATE_FORMATTER.format(new Date(event.timeStamp))); sbuf.append(','); sbuf.append(event.getLevel()); sbuf.append(','); appendLoggerName(event, sbuf); sbuf.append(','); // The following appends it's own ending comma. appendContextText(event, sbuf); sbuf.append(escapeForCsv(event.getRenderedMessage())); sbuf.append(','); String s[] = event.getThrowableStrRep(); if( s != null ) { appendThrowableAsHTML(s, sbuf); } sbuf.append(Layout.LINE_SEP); return sbuf.toString(); }
void appendThrowableAsHTML(String s[], StringBuilder sbuf) { if( s != null && s.length > 0 ) { sbuf.append(escapeForCsv(s[0])); sbuf.append(Layout.LINE_SEP); for( int i = 1; i < s.length; i++ ) { sbuf.append(" "); sbuf.append(escapeForCsv(s[i])); sbuf.append(Layout.LINE_SEP); } } }
@Override public String getHeader() { StringBuilder sbuf = new StringBuilder("Time,Level,Category,"); if( contexts != null ) { for( String context : contexts ) { sbuf.append(context); sbuf.append(','); } } return sbuf.append("Message,Stacktrace").append(Layout.LINE_SEP).toString(); }