@Override protected PrintStream getStream() { // Lazy init to allow for the appender to be changed at Runtime without creating an empty log file (assuming // that no log message has been written yet) if (printStream == null) { synchronized (this) { if (printStream == null) { init(); } } } return printStream; }
protected FormattedLogger() { strategy = new SingleLineFormat(); }
@Override public void logSQL(int connectionId, String now, long elapsed, Category category, String prepared, String sql, String url) { logText(strategy.formatMessage(connectionId, now, elapsed, category.toString(), prepared, sql, url)); }
public static synchronized void initialize() { final P6ModuleManager moduleManager = P6ModuleManager.getInstance(); if (null == moduleManager) { // not initialized yet => can't proceed return; } final P6SpyOptions opts = moduleManager.getOptions(P6SpyOptions.class); logger = opts.getAppenderInstance(); if (logger != null) { if (logger instanceof FileLogger) { final String logfile = opts.getLogfile(); ((FileLogger) logger).setLogfile(logfile); } if (logger instanceof FormattedLogger) { final MessageFormattingStrategy strategy = opts.getLogMessageFormatInstance(); if (strategy != null) { ((FormattedLogger) logger).setStrategy(strategy); } } } }
public void checkCategoryToLevelMapping(Category category, Level expectedLevel, Level thresholdLevel) throws Exception { configure(thresholdLevel.toString(), true); Log4JTestApppender.clearCapturedMessages(); P6LogQuery.log(category, "sample msg", "sample msg"); if (expectedLevel == null) { assertEquals(0, Log4JTestApppender.getCapturedMessages().size()); } else { assertEquals(1, Log4JTestApppender.getCapturedMessages().size()); assertEquals(expectedLevel, Log4JTestApppender.getCapturedMessages().get(0).getLevel()); } }
@Override public void logException(Exception e) { e.printStackTrace(getStream()); }
public void clearLogs() { clearLogEntries(); }
protected List<String> getLogEntries() { return getP6TestLogger().getLogs(); }
private void checkCategoryToInfoLevelMapping(Category category) throws Exception { checkCategoryToLevelMapping(category, null, Level.OFF); checkCategoryToLevelMapping(category, null, Level.ERROR); checkCategoryToLevelMapping(category, null, Level.WARN); checkCategoryToLevelMapping(category, Level.INFO, Level.INFO); checkCategoryToLevelMapping(category, Level.INFO, Level.DEBUG); }
@Override public void logText(String text) { if (null != text) { logs.add(text); } super.logText(text); }
@Override public void logSQL(int connectionId, String now, long elapsed, Category category, String prepared, String sql, String url) { super.logSQL(connectionId, now, elapsed, category, prepared, sql, url); times.add(elapsed); }
protected void clearLastLogStackTrace() { getP6TestLogger().clearLastStacktrace(); }
protected String getLastLogStackTrace() { return getP6TestLogger().getLastStacktrace(); }
protected String getLastLogEntry() { return getP6TestLogger().getLastEntry(); }
protected Long getLastTimeElapsed() { return getP6TestLogger().getLastTimeElapsed(); }
protected String getLastButOneLogEntry() { return getP6TestLogger().getLastButOneEntry(); }
@Test public void testExternallyConfiguredLog4J() throws Exception { configure(SUFFIX_DEBUG, false); Connection con = DriverManager.getConnection("jdbc:p6spy:h2:mem:p6spy", "sa", null); Log4JTestApppender.clearCapturedMessages(); P6TestUtil.queryForInt(con, "select count(*) from customers"); con.close(); assertEquals(1, Log4JTestApppender.getCapturedMessages().size()); }
@Override public void logText(String text) { getStream().println(text); }
protected void clearLogEntries() { getP6TestLogger().clearLogEntries(); }
protected int getLogEntriesCount() { return getP6TestLogger().getLogs().size(); }