private void multiplicityWarning(String resourceName, ClassLoader classLoader) { Set urlSet = null; StatusManager sm = this.loggerContext.getStatusManager(); try { urlSet = Loader.getResourceOccurrenceCount(resourceName, classLoader); } catch (IOException var7) { sm.add(new ErrorStatus("Failed to get url list for resource [" + resourceName + "]", this.loggerContext, var7)); } if (urlSet != null && urlSet.size() > 1) { sm.add(new WarnStatus("Resource [" + resourceName + "] occurs multiple times on the classpath.", this.loggerContext)); Iterator i$ = urlSet.iterator(); while (i$.hasNext()) { URL url = (URL) i$.next(); sm.add(new WarnStatus("Resource [" + resourceName + "] occurs at [" + url.toString() + "]", this.loggerContext)); } } }
public static void configure(KonkerLoggerContext lc) { StatusManager sm = lc.getStatusManager(); if(sm != null) { sm.add(new InfoStatus("Setting up default configuration.", lc)); } ConsoleAppender ca = new ConsoleAppender(); ca.setContext(lc); ca.setName("console"); PatternLayoutEncoder pl = new PatternLayoutEncoder(); pl.setContext(lc); pl.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); pl.start(); ca.setEncoder(pl); ca.start(); KonkerLogger rootLogger = lc.getLogger("ROOT"); rootLogger.addAppender(ca); }
static void checkSanity(Auditor auditor) throws AuditException { StatusManager sm = auditor.getStatusManager(); if (getHighestLevel(0, sm) > Status.INFO) { StatusPrinter.print(sm); } if (auditor.getClientApplication() == null) { throw new AuditException("Client application has not been set"); } if (auditor.getAuditAppender() == null) { throw new AuditException("No audit appender. Please see " + NULL_AUDIT_APPENDER_URL); } }
public void start() { if(pattern == null || pattern.length() == 0) { addError("Empty or null pattern."); return; } try { Parser<E> p = new Parser<E>(pattern); if (getContext() != null) { p.setContext(getContext()); } Node t = p.parse(); this.head = p.compile(t, getEffectiveConverterMap()); if (postCompileProcessor != null) { postCompileProcessor.process(head); } ConverterUtil.setContextForConverters(getContext(), head); ConverterUtil.startConverters(this.head); super.start(); } catch (ScanException sce) { StatusManager sm = getContext().getStatusManager(); sm.add(new ErrorStatus("Failed to parse pattern \"" + getPattern() + "\".", this, sce)); } }
void secondPhase(String testId, String file, String stem, String compressionSuffix, int runLength, String prefix) { rfa1.stop(); if (stem != null) { File f = new File(file); f.setLastModified(currentTime); } StatusManager sm = context.getStatusManager(); sm.add(new InfoStatus("Time when rfa1 is stopped: " + new Date(currentTime), this)); sm.add(new InfoStatus("currentTime%1000=" + (currentTime % 1000), this)); initRollingFileAppender(rfa2, file); initPolicies(rfa2, tbrp2, randomOutputDir + testId + "-%d{" + DATE_PATTERN_WITH_SECONDS + "}-%i.txt" + compressionSuffix, sizeThreshold, currentTime, 0); for (int i = runLength; i < runLength * 2; i++) { incCurrentTime(100); tbrp2.timeBasedFileNamingAndTriggeringPolicy.setCurrentTime(currentTime); String msg = prefix + i; rfa2.doAppend(msg); addExpectedFileNamedIfItsTime(randomOutputDir, testId, msg, compressionSuffix); } }
public static void configure(LoggerContext lc) { StatusManager sm = lc.getStatusManager(); if(sm != null) { sm.add(new InfoStatus("Setting up default configuration.", lc)); } ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>(); ca.setContext(lc); ca.setName("console"); PatternLayoutEncoder pl = new PatternLayoutEncoder(); pl.setContext(lc); pl.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); pl.start(); ca.setEncoder(pl); ca.start(); Logger rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(ca); }
private URL findConfigFileURL(Context ctx, LoggerContext loggerContext) { StatusManager sm = loggerContext.getStatusManager(); String jndiEntryForConfigResource = JNDIUtil.lookup(ctx, JNDI_CONFIGURATION_RESOURCE); // Do we have a dedicated configuration file? if (jndiEntryForConfigResource != null) { sm.add(new InfoStatus("Searching for [" + jndiEntryForConfigResource + "]", this)); URL url = urlByResourceName(sm, jndiEntryForConfigResource); if (url == null) { String msg = "The jndi resource [" + jndiEntryForConfigResource + "] for context [" + loggerContext.getName() + "] does not lead to a valid file"; sm.add(new WarnStatus(msg, this)); } return url; } else { String resourceByConvention = conventionalConfigFileName(loggerContext .getName()); return urlByResourceName(sm, resourceByConvention); } }
public void configureByResource(URL url) throws JoranException { if (url == null) { throw new IllegalArgumentException("URL argument cannot be null"); } final String urlString = url.toString(); if (urlString.endsWith("groovy")) { if (EnvUtil.isGroovyAvailable()) { // avoid directly referring to GafferConfigurator so as to avoid // loading groovy.lang.GroovyObject . See also http://jira.qos.ch/browse/LBCLASSIC-214 GafferUtil.runGafferConfiguratorOn(loggerContext, this, url); } else { StatusManager sm = loggerContext.getStatusManager(); sm.add(new ErrorStatus("Groovy classes are not available on the class path. ABORTING INITIALIZATION.", loggerContext)); } } else if (urlString.endsWith("xml")) { JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerContext); configurator.doConfigure(url); } else { throw new LogbackException("Unexpected filename extension of file [" + url.toString() + "]. Should be either .groovy or .xml"); } }
private void multiplicityWarning(String resourceName, ClassLoader classLoader) { Set<URL> urlSet = null; StatusManager sm = loggerContext.getStatusManager(); try { urlSet = Loader.getResourceOccurrenceCount(resourceName, classLoader); } catch (IOException e) { sm.add(new ErrorStatus("Failed to get url list for resource [" + resourceName + "]", loggerContext, e)); } if (urlSet != null && urlSet.size() > 1) { sm.add(new WarnStatus("Resource [" + resourceName + "] occurs multiple times on the classpath.", loggerContext)); for (URL url : urlSet) { sm.add(new WarnStatus("Resource [" + resourceName + "] occurs at [" + url.toString() + "]", loggerContext)); } } }
@Test public void testStatusWithUnconfiguredContext() { Logger logger = lc.getLogger(LoggerContextTest.class); for (int i = 0; i < 3; i++) { logger.debug("test"); } logger = lc.getLogger("x.y.z"); for (int i = 0; i < 3; i++) { logger.debug("test"); } StatusManager sm = lc.getStatusManager(); assertTrue("StatusManager has recieved too many messages", sm.getCount() == 1); }
@Override protected StatusManager getStatusManager(HttpServletRequest req, HttpServletResponse resp) { ServletContext sc = getServletContext(); return (StatusManager) sc .getAttribute(AccessConstants.LOGBACK_STATUS_MANAGER_KEY); // if (result != null) { // System.out.println("from ServletContext"); // return result; // } else { // HttpSession httpSession = req.getSession(true); // // System.out.println("from httpSession"); // return (StatusManager) httpSession // .getAttribute(AccessConstants.LOGBACK_STATUS_MANAGER_KEY); // } }
/** {@inheritDoc} */ @Override public void configure(LoggerContext loggerContext) { StatusManager sm = loggerContext.getStatusManager(); if (sm != null) { sm.add(new InfoStatus("Setting up GreenPepper PHP Runner configuration.", loggerContext)); } ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>(); ca.setContext(loggerContext); ca.setName("console"); PatternLayoutEncoder pl = new PatternLayoutEncoder(); pl.setContext(loggerContext); pl.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-36logger{36} - %msg%n"); pl.start(); ca.setEncoder(pl); ca.start(); Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(ca); rootLogger.setLevel(Level.INFO); }
/** {@inheritDoc} */ @Override public void configure(LoggerContext loggerContext) { StatusManager sm = loggerContext.getStatusManager(); if (sm != null) { sm.add(new InfoStatus("Setting up default configuration.", loggerContext)); } ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>(); ca.setContext(loggerContext); ca.setName("console"); PatternLayoutEncoder pl = new PatternLayoutEncoder(); pl.setContext(loggerContext); pl.setPattern("[%-5level] %msg%n"); pl.start(); ca.setEncoder(pl); ca.start(); Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(ca); rootLogger.setLevel(Level.WARN); loggerContext.getLogger("com.greenpepper.maven.plugin").setLevel(Level.INFO); }
public static void configure(LoggerContext loggerContext) { loggerContext.reset(); StatusManager sm = loggerContext.getStatusManager(); if (sm != null) { sm.add(new InfoStatus("Setting up default Pipes configuration.", loggerContext)); } ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<>(); ca.setContext(loggerContext); ca.setWithJansi(true); ca.setName("console"); PatternLayoutEncoder pl = new PatternLayoutEncoder(); pl.setCharset(Charset.forName("UTF-8")); pl.setContext(loggerContext); //pl.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); pl.setPattern("%msg%n"); pl.start(); ca.setEncoder(pl); ca.start(); ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); rootLogger.setLevel(Level.INFO); rootLogger.addAppender(ca); }
@AfterClass public static void checkStatusList() { sleep(); LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusManager statusManager = lc.getStatusManager(); List<Status> statusList = statusManager.getCopyOfStatusList(); for (Status status : statusList) { int level = status.getLevel(); assertNotEquals(status.getMessage(), Status.ERROR, level); assertNotEquals(status.getMessage(), Status.WARN, level); } }
private void resetStatusListeners() { StatusManager sm = this.getStatusManager(); Iterator i$ = sm.getCopyOfStatusListenerList().iterator(); while(i$.hasNext()) { StatusListener sl = (StatusListener)i$.next(); sm.remove(sl); } }
private void statusOnResourceSearch(String resourceName, ClassLoader classLoader, URL url) { StatusManager sm = this.loggerContext.getStatusManager(); if (url == null) { sm.add(new InfoStatus("Could NOT find resource [" + resourceName + "]", this.loggerContext)); } else { sm.add(new InfoStatus("Found resource [" + resourceName + "] at [" + url.toString() + "]", this.loggerContext)); this.multiplicityWarning(resourceName, classLoader); } }
public static int getHighestLevel(long threshold, StatusManager sm ) { List filteredList = StatusUtil.filterStatusListByTimeThreshold(sm.getCopyOfStatusList(), threshold); int maxLevel = 0; Iterator i$ = filteredList.iterator(); while(i$.hasNext()) { Status s = (Status)i$.next(); if(s.getLevel() > maxLevel) { maxLevel = s.getLevel(); } } return maxLevel; }
public void addStatus(Status status) { if (context == null) { if (noContextWarning++ == 0) { System.out.println("LOGBACK: No context given for " + this); } return; } StatusManager sm = context.getStatusManager(); if (sm != null) { sm.add(status); } }
static void addStatus(Context context, Status s) { if (context == null) { System.out.println("Null context in " + ConfigurationWatchList.class.getName()); return; } StatusManager sm = context.getStatusManager(); if (sm == null) return; sm.add(s); }
@Test public void testUnStarted() { PatternLayoutBase<E> plb = getPatternLayoutBase(); Context context = new ContextBase(); plb.setContext(context); String s = plb.doLayout(getEventObject()); assertEquals("", s); StatusManager sm = context.getStatusManager(); StatusPrinter.print(sm); }
@Test public void testStarted() { PatternLayoutBase<E> plb = getPatternLayoutBase(); Context context = new ContextBase(); plb.setContext(context); String s = plb.doLayout(getEventObject()); assertEquals("", s); StatusManager sm = context.getStatusManager(); StatusPrinter.print(sm); }
@Test public void testProcessingOfTextWithEntityCharacters() throws Exception { List<StaxEvent> seList = doTest("ampEvent.xml"); StatusManager sm = context.getStatusManager(); assertTrue(statusChecker.getHighestLevel(0) == Status.INFO); //dump(seList); assertEquals(3, seList.size()); BodyEvent be = (BodyEvent) seList.get(1); assertEquals("xxx & yyy", be.getText()); }
@Test public void testAttributeProcessing() throws Exception { List<StaxEvent> seList = doTest("inc.xml"); StatusManager sm = context.getStatusManager(); assertTrue(statusChecker.getHighestLevel(0) == Status.INFO); assertEquals(4, seList.size()); StartEvent se = (StartEvent) seList.get(1); Attribute attr = se.getAttributeByName("increment"); assertNotNull(attr); assertEquals("1", attr.getValue()); }
@Test public void test2() throws Exception { List<SaxEvent> seList = doTest("ampEvent.xml"); StatusManager sm = context.getStatusManager(); assertTrue(statusChecker.getHighestLevel(0) == Status.INFO); //dump(seList); assertEquals(3, seList.size()); BodyEvent be = (BodyEvent) seList.get(1); assertEquals("xxx & yyy", be.getText()); }
@Test public void test3() throws Exception { List<SaxEvent> seList = doTest("inc.xml"); StatusManager sm = context.getStatusManager(); assertTrue(statusChecker.getHighestLevel(0) == Status.INFO); //dump(seList); assertEquals(4, seList.size()); StartEvent se = (StartEvent) seList.get(1); Attributes attr = se.getAttributes(); assertNotNull(attr); assertEquals("1", attr.getValue("increment")); }
@Test public void testPrudentModeLogicalImplications() { String filename = CoreTestConstants.OUTPUT_DIR_PREFIX + diff + "fat-testPrudentModeLogicalImplications.txt"; File file = new File(filename); FileAppender<Object> appender = new FileAppender<Object>(); appender.setEncoder(new DummyEncoder<Object>()); appender.setFile(filename); appender.setName("testPrudentModeLogicalImplications"); appender.setContext(context); appender.setAppend(false); appender.setPrudent(true); appender.start(); assertTrue(appender.isAppend()); StatusManager sm = context.getStatusManager(); //StatusPrinter.print(context); StatusChecker statusChecker = new StatusChecker(context); assertEquals(Status.WARN, statusChecker.getHighestLevel(0)); List<Status> statusList = sm.getCopyOfStatusList(); assertTrue("Expecting status list size to be 2 or larger, but was " + statusList.size(), statusList.size() >= 2); String msg1 = statusList.get(1).getMessage(); assertTrue("Got message [" + msg1 + "]", msg1 .startsWith("Setting \"Append\" property")); appender.doAppend(new Object()); appender.stop(); assertTrue(file.exists()); assertTrue("failed to delete " + file.getAbsolutePath(), file.delete()); }
private static void addError(LoggerContext context, Object origin, String msg, Throwable t) { StatusManager sm = context.getStatusManager(); if (sm == null) { return; } sm.add(new ErrorStatus(msg, origin, t)); }
private URL urlByResourceName(StatusManager sm, String resourceName) { sm.add(new InfoStatus("Searching for [" + resourceName + "]", this)); URL url = Loader.getResource(resourceName, Loader.getTCL()); if (url != null) { return url; } return Loader.getResourceBySelfClassLoader(resourceName); }
private void statusOnResourceSearch(String resourceName, ClassLoader classLoader, URL url) { StatusManager sm = loggerContext.getStatusManager(); if (url == null) { sm.add(new InfoStatus("Could NOT find resource [" + resourceName + "]", loggerContext)); } else { sm.add(new InfoStatus("Found resource [" + resourceName + "] at [" + url.toString() + "]", loggerContext)); multiplicityWarning(resourceName, classLoader); } }
public static void main(String[] args) throws JoranException { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusManager statusManager = lc.getStatusManager(); OnConsoleStatusListener onConsoleListener = new OnConsoleStatusListener(); statusManager.add(onConsoleListener); Logger logger = LoggerFactory.getLogger("myApp"); logger.info("Entering application."); Foo foo = new Foo(); foo.doIt(); logger.info("Exiting application."); }
public void addStatus(LoggerContext context, Status status) { if (context != null) { StatusManager sm = context.getStatusManager(); if (sm != null) { sm.add(status); } } }
@After public void tearDown() { final Logger logger = (Logger) LoggerFactory.getLogger(getClass()); final StatusManager sm = rootLogger.getLoggerContext().getStatusManager(); int count = 0; for (Status s : sm.getCopyOfStatusList()) { final int level = s.getEffectiveLevel(); if (level == Status.INFO) { continue; } if (s.getMessage().contains(InternalLoggerFactory.class.getName())) { // Skip the warnings related with Netty. continue; } count++; switch (level) { case Status.WARN: if (s.getThrowable() != null) { logger.warn(s.getMessage(), s.getThrowable()); } else { logger.warn(s.getMessage()); } break; case Status.ERROR: if (s.getThrowable() != null) { logger.warn(s.getMessage(), s.getThrowable()); } else { logger.warn(s.getMessage()); } break; } } if (count > 0) { fail("Appender raised an exception."); } }
/** * Verifica si la configuración es correcta. */ @Test public void testConfiguration() { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); // print logback's internal status StringBuilder sb = new StringBuilder(); StatusManager sm = lc.getStatusManager(); for (Status s : sm.getCopyOfStatusList()) { StatusPrinter.buildStr(sb, "", s); } assertThat(sb.toString(), containsString("Found resource")); }
public static void initLogback() { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusManager statusManager = loggerContext.getStatusManager(); if (statusManager != null) { statusManager.add(new InfoStatus("Setting up logger configuration.", loggerContext)); } final PatternLayout layout = new PatternLayout(); layout.setContext(loggerContext); layout.setPattern("%msg%n"); layout.start(); AppenderBase<ILoggingEvent> appender = new AppenderBase<ILoggingEvent>() { @Override protected void append(ILoggingEvent event) { String message = layout.doLayout(event); LogHelper.appendLogEntry(event.getTimeStamp(), convertLevel(event.getLevel()), event.getLoggerName(), event.getThreadName(), message); } }; appender.setContext(loggerContext); appender.setName(LOGBACK_APPENDER_NAME); appender.start(); Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(appender); }
public StatusManager getStatusManager() { return sm; }
public StatusManager getStatusManager() { if (context == null) { return null; } return context.getStatusManager(); }