Java 类ch.qos.logback.core.status.Status 实例源码

项目:wolfia    文件:StatusToFileListener.java   
@Override
public void addStatusEvent(final Status status) {
    final Level level;
    switch (status.getLevel()) {
        case Status.INFO:
            level = Level.INFO;
            break;
        case Status.WARN:
            level = Level.WARN;
            break;
        case Status.ERROR:
            level = Level.ERROR;
            break;
        default:
            level = Level.INFO;
            break;
    }
    final LoggingEvent event = new LoggingEvent(StatusToFileListener.class.getSimpleName(),
            new LoggerContext().getLogger(StatusToFileListener.class),
            level,
            status.getMessage(),
            null,
            null);

    append(event);
}
项目:common-libraries    文件:ImprovedAuditorFactory.java   
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);
    }
}
项目:bartleby    文件:BasicStatusManager.java   
/**
 * Add a new status object.
 * 
 * @param newStatus
 *                the status message to add
 */
public void add(Status newStatus) {
  // LBCORE-72: fire event before the count check
  fireStatusAddEvent(newStatus);

  count++;
  if (newStatus.getLevel() > level) {
    level = newStatus.getLevel();
  }

  synchronized (statusListLock) {
    if (statusList.size() < MAX_HEADER_COUNT) {
      statusList.add(newStatus);
    } else {
      tailBuffer.add(newStatus);
    }
  }

}
项目:bartleby    文件:RollingFileAppenderTest.java   
@Test
public void testPrudentModeLogicalImplicationsOnCompression() {
  rfa.setContext(context);
  rfa.setAppend(false);
  rfa.setPrudent(true);

  tbrp.setFileNamePattern(CoreTestConstants.OUTPUT_DIR_PREFIX + "toto-%d.log.zip");
  tbrp.start();
  rfa.setRollingPolicy(tbrp);

  rfa.start();

  StatusChecker checker = new StatusChecker(context);
  assertFalse(rfa.isStarted());
  assertEquals(Status.ERROR, checker.getHighestLevel(0));
}
项目:bartleby    文件:TrivialConfiguratorTest.java   
@Test
public void inexistentFile() {
  TrivialStatusListener tsl = new TrivialStatusListener();
  tsl.start();
  String filename = CoreTestConstants.TEST_SRC_PREFIX + "input/joran/"
          + "nothereBLAH.xml";
  context.getStatusManager().add(tsl);
  try {
    doTest(filename);
  } catch (Exception e) {
    assertTrue(e.getMessage().startsWith("Could not open ["));
  }
  assertTrue(tsl.list.size() + " should be greater than or equal to 1",
          tsl.list.size() >= 1);
  Status s0 = tsl.list.get(0);
  assertTrue(s0.getMessage().startsWith("Could not open ["));
}
项目:bartleby    文件:BasicStatusManagerTest.java   
@Test
public void many() {
  int margin = 300;
  int len = MAX_HEADER_COUNT + TAIL_SIZE + margin;
  for (int i = 0; i < len; i++) {
    bsm.add(new ErrorStatus("" + i, this));
  }

  List<Status> statusList = bsm.getCopyOfStatusList();
  assertNotNull(statusList);
  assertEquals(MAX_HEADER_COUNT + TAIL_SIZE, statusList.size());
  List<Status> witness = new ArrayList<Status>();
  for (int i = 0; i < MAX_HEADER_COUNT; i++) {
    witness.add(new ErrorStatus("" + i, this));
  }
  for (int i = 0; i < TAIL_SIZE; i++) {
    witness.add(new ErrorStatus("" + (MAX_HEADER_COUNT + margin + i), this));
  }
  assertEquals(witness, statusList);
}
项目:bartleby    文件:ConsoleAppenderTest.java   
@Test
  public void wrongTarget() {
    ConsoleAppender<Object> ca = (ConsoleAppender<Object>) getAppender();
    EchoEncoder<Object> encoder = new EchoEncoder<Object>();
    encoder.setContext(context);
    ca.setContext(context);
    ca.setTarget("foo");
    ca.setEncoder(encoder);
    ca.start();
    ca.doAppend("a");
    StatusChecker checker = new StatusChecker(context);
    //21:28:01,246 + WARN in ch.qos.logback.core.ConsoleAppender[null] - [foo] should be one of [SystemOut, SystemErr]
    //21:28:01,246   |-WARN in ch.qos.logback.core.ConsoleAppender[null] - Using previously set target, System.out by default.
//    StatusPrinter.print(context);

    checker.assertContainsMatch(Status.WARN, "\\[foo\\] should be one of \\[SystemOut, SystemErr\\]");

  }
项目:bartleby    文件:ReconfigureOnChangeTest.java   
@Test(timeout = 4000L)
public void fallbackToSafe() throws IOException, JoranException, InterruptedException {
  String path = CoreTestConstants.OUTPUT_DIR_PREFIX + "reconfigureOnChangeConfig_fallbackToSafe-" + diff + ".xml";
  File topLevelFile = new File(path);
  writeToFile(topLevelFile, "<configuration scan=\"true\" scanPeriod=\"50 millisecond\"><root level=\"ERROR\"/></configuration> ");
  configure(topLevelFile);

  writeToFile(topLevelFile, "<configuration scan=\"true\" scanPeriod=\"50 millisecond\">\n" +
          "  <root></configuration>");

  rocfDetachReconfigurationToNewThreadAndAwaitTermination();

  checker.assertContainsMatch(Status.WARN, "Falling back to previously registered safe configuration.");
  checker.assertContainsMatch(Status.INFO, "Re-registering previous fallback configuration once more");

  assertThatFirstFilterIsROCF();
}
项目:bartleby    文件:ReconfigureOnChangeTest.java   
@Test(timeout = 4000L)
public void fallbackToSafeWithIncludedFile() throws IOException, JoranException, InterruptedException {
  String topLevelFileAsStr = CoreTestConstants.OUTPUT_DIR_PREFIX + "reconfigureOnChangeConfig_top-" + diff + ".xml";
  String innerFileAsStr = CoreTestConstants.OUTPUT_DIR_PREFIX + "reconfigureOnChangeConfig_inner-" + diff + ".xml";
  File topLevelFile = new File(topLevelFileAsStr);
  writeToFile(topLevelFile, "<configuration scan=\"true\" scanPeriod=\"50 millisecond\"><include file=\"" + innerFileAsStr + "\"/></configuration> ");

  File innerFile = new File(innerFileAsStr);
  writeToFile(innerFile, "<included><root level=\"ERROR\"/></included> ");
  configure(topLevelFile);
  writeToFile(innerFile, "<included>\n<root>\n</included>");
  rocfDetachReconfigurationToNewThreadAndAwaitTermination();

  checker.assertContainsMatch(Status.WARN, "Falling back to previously registered safe configuration.");
  checker.assertContainsMatch(Status.INFO, "Re-registering previous fallback configuration once more");

  assertThatFirstFilterIsROCF();
}
项目:bartleby    文件:DBAppenderIntegrationTest.java   
public void doTest(String configFile) throws JoranException {
  JoranConfigurator configurator = new JoranConfigurator();
  configurator.setContext(context);
  configurator.doConfigure(configFile);

  Appender<IAccessEvent> appender = context.getAppender("DB");

  for (int i = 0; i < 10; i++) {
    IAccessEvent event = DummyAccessEventBuilder.buildNewAccessEvent();
    appender.doAppend(event);
  }

  StatusPrinter.print(context);

  // check that there were no errors
  assertEquals(Status.INFO,  statusChecker.getHighestLevel(0));

}
项目:scylla-tools-java    文件:LogbackStatusListener.java   
@Override
public void addStatusEvent(Status s)
{
    if (s.getLevel() != 0 || s.getEffectiveLevel() != 0)
        hadError = true;

    if (!hadError && s.getMessage().equals("Registering current configuration as safe fallback point"))
    {
        try
        {
            installReplacementStreams();
        }
        catch (Exception e)
        {
            throw new RuntimeException(e);
        }
    }

    if (s.getMessage().equals("Logback context being closed via shutdown hook"))
    {
        if (replacementOut != null) replacementOut.flush();
        if (replacementErr != null) replacementErr.flush();
        System.setErr(originalErr);
        System.setOut(originalOut);
    }
}
项目:airbrake-logback    文件:AirbrakeLogbackAppenderTest.java   
@Test
public void testConfiguration() {
    // When
    AirbrakeLogbackAppender appender = new AirbrakeLogbackAppender();
    appender.setContext(new LoggerContext());
    appender.start();
    List<Status> statusList = appender.getStatusManager().getCopyOfStatusList();
    Assertions.assertThat(statusList).hasSize(2); // 

    appender.stop();

    // When with protocol
    appender.setUrl("https://www.example.org");

    // When without protocol
    thrown.expect(IllegalArgumentException.class);
    thrown.expectMessage("Wrong url: www.example.org");

    appender.setUrl("www.example.org");
}
项目:wngn-jms-kafka    文件:KafkaAppenderIT.java   
@Before
public void beforeLogSystemInit() throws IOException, InterruptedException {

    kafka = TestKafka.createTestKafka(1);

    loggerContext = new LoggerContext();
    loggerContext.putProperty("brokers.list", kafka.getBrokerList());
    loggerContext.getStatusManager().add(new StatusListener() {
        @Override
        public void addStatusEvent(Status status) {
            if (status.getEffectiveLevel() > Status.INFO) {
                System.err.println(status.toString());
                if (status.getThrowable() != null) {
                    collector.addError(status.getThrowable());
                } else {
                    collector.addError(new RuntimeException("StatusManager reported warning: "+status.toString()));
                }
            } else {
                System.out.println(status.toString());
            }
        }
    });
    loggerContext.putProperty("HOSTNAME","localhost");

    unit = new KafkaAppender<ILoggingEvent>();
    final PatternLayout patternLayout = new PatternLayout();
    patternLayout.setPattern("%msg");
    patternLayout.setContext(loggerContext);
    patternLayout.start();
    unit.setEncoder(new LayoutKafkaMessageEncoder(patternLayout, Charset.forName("UTF-8")));
    unit.setTopic("logs");
    unit.setName("TestKafkaAppender");
    unit.setContext(loggerContext);
    unit.addProducerConfigValue(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafka.getBrokerList());
    unit.setKeyingStrategy(new RoundRobinKeyingStrategy());
}
项目:aliyun-log-logback-appender    文件:TestAppender.java   
@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);
    }
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:LogbackLoggingSystem.java   
@Override
protected void loadConfiguration(LoggingInitializationContext initializationContext,
        String location, LogFile logFile) {
    super.loadConfiguration(initializationContext, location, logFile);
    LoggerContext loggerContext = getLoggerContext();
    stopAndReset(loggerContext);
    try {
        configureByResourceUrl(initializationContext, loggerContext,
                ResourceUtils.getURL(location));
    }
    catch (Exception ex) {
        throw new IllegalStateException(
                "Could not initialize Logback logging from " + location, ex);
    }
    List<Status> statuses = loggerContext.getStatusManager().getCopyOfStatusList();
    StringBuilder errors = new StringBuilder();
    for (Status status : statuses) {
        if (status.getLevel() == Status.ERROR) {
            errors.append(errors.length() > 0 ? String.format("%n") : "");
            errors.append(status.toString());
        }
    }
    if (errors.length() > 0) {
        throw new IllegalStateException(
                String.format("Logback configuration error detected: %n%s", errors));
    }
}
项目:common-libraries    文件:ImprovedAuditorFactory.java   
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;
}
项目:spring-boot-concourse    文件:LogbackLoggingSystem.java   
@Override
protected void loadConfiguration(LoggingInitializationContext initializationContext,
        String location, LogFile logFile) {
    super.loadConfiguration(initializationContext, location, logFile);
    LoggerContext loggerContext = getLoggerContext();
    stopAndReset(loggerContext);
    try {
        configureByResourceUrl(initializationContext, loggerContext,
                ResourceUtils.getURL(location));
    }
    catch (Exception ex) {
        throw new IllegalStateException(
                "Could not initialize Logback logging from " + location, ex);
    }
    List<Status> statuses = loggerContext.getStatusManager().getCopyOfStatusList();
    StringBuilder errors = new StringBuilder();
    for (Status status : statuses) {
        if (status.getLevel() == Status.ERROR) {
            errors.append(errors.length() > 0 ? String.format("%n") : "");
            errors.append(status.toString());
        }
    }
    if (errors.length() > 0) {
        throw new IllegalStateException(
                String.format("Logback configuration error detected: %n%s", errors));
    }
}
项目:logback-slack-appender    文件:LogbackSlackAppenderTest.java   
@Test
public void one_error_status_should_be_reported_when_level_not_set_on_start_up_and_appender_reports_as_not_started() {
    appender.setEndpoint("");
    appender.setLayout(layout);
    assertThat(appender.getLevel(), is(nullValue()));
    appender.start();

    verify(sm, times(1)).add(any(Status.class));
    assertFalse(appender.isStarted());
}
项目:logback-slack-appender    文件:LogbackSlackAppenderTest.java   
@Test
public void one_error_status_should_be_reported_when_endpoint_not_set_on_start_up_and_appender_reports_as_not_started() {
    appender.setLevel(Level.ERROR);
    appender.setLayout(layout);
    assertThat(appender.getEndpoint(), is(nullValue()));

    appender.start();

    verify(sm, times(1)).add(any(Status.class));
    assertFalse(appender.isStarted());
}
项目:logback-slack-appender    文件:LogbackSlackAppenderTest.java   
@Test
public void one_error_status_should_be_reported_when_layout_not_set_on_start_up_and_appender_reports_as_not_started() {
    appender.setLevel(Level.ERROR);
    appender.setEndpoint("");
    assertThat(appender.getLayout(), is(nullValue()));

    appender.start();

    verify(sm, times(1)).add(any(Status.class));
    assertFalse(appender.isStarted());
}
项目:logback-slack-appender    文件:LogbackSlackAppenderTest.java   
@Test
public void three_error_status_should_be_reported_when_endpoint_and_level_not_set_on_start_up_and_appender_reports_as_not_started() {
    assertThat(appender.getLevel(), is(nullValue()));
    assertThat(appender.getEndpoint(), is(nullValue()));
    assertThat(appender.getLayout(), is(nullValue()));

    appender.start();

    verify(sm, times(3)).add(any(Status.class));
    assertFalse(appender.isStarted());
}
项目:logback-slack-appender    文件:LogbackSlackAppenderTest.java   
@Test
public void no_status_should_be_reported_when_endpoint_and_level_set_on_start_up_and_appender_reports_as_started() {
    appender.setLevel(Level.ERROR);
    appender.setEndpoint("");
    appender.setLayout(layout);
    assertThat(appender.getLevel(), is(org.hamcrest.Matchers.any(Level.class)));
    assertThat(appender.getEndpoint(), is(org.hamcrest.Matchers.any(String.class)));

    appender.start();

    verify(sm, never()).add(any(Status.class));
    assertTrue(appender.isStarted());
}
项目:bartleby    文件:BasicStatusManager.java   
public List<Status> getCopyOfStatusList() {
  synchronized (statusListLock) {
    List<Status> tList = new ArrayList<Status>(statusList);
    tList.addAll(tailBuffer.asList());
    return tList;
  }
}
项目:bartleby    文件:BasicStatusManager.java   
private void fireStatusAddEvent(Status status) {
  synchronized (statusListenerListLock) {
    for (StatusListener sl : statusListenerList) {
      sl.addStatusEvent(status);
    }
  }
}
项目:bartleby    文件:ConsoleAppender.java   
private void targetWarn(String val) {
  Status status = new WarnStatus("[" + val + "] should be one of "
          + Arrays.toString(ConsoleTarget.values()), this);
  status.add(new WarnStatus(
          "Using previously set target, System.out by default.", this));
  addStatus(status);
}
项目:bartleby    文件:ContextAwareImpl.java   
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);
  }
}
项目:bartleby    文件:ContextAwareBase.java   
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);
  }
}
项目:bartleby    文件:ConfigurationWatchListUtil.java   
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);
}
项目:bartleby    文件:ResilientOutputStreamBase.java   
void addStatusIfCountNotOverLimit(Status s) {
  ++statusCount;
  if (statusCount < STATUS_COUNT_LIMIT) {
    addStatus(s);
  }

  if (statusCount == STATUS_COUNT_LIMIT) {
    addStatus(s);
    addStatus(new InfoStatus("Will supress future messages regarding "
        + getDescription(), this));
  }
}
项目:bartleby    文件:ResilientOutputStreamBase.java   
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);
  }
}
项目:bartleby    文件:RollingFileAppenderTest.java   
@Test
public void testFilePropertyAfterRollingPolicy() {
  rfa.setContext(context);
  rfa.setRollingPolicy(tbrp);
  rfa.setFile("x");
  StatusPrinter.print(context);
  StatusChecker statusChecker = new StatusChecker(context.getStatusManager());
  statusChecker.assertContainsMatch(Status.ERROR,
          "File property must be set before any triggeringPolicy ");
}
项目:bartleby    文件:RollingFileAppenderTest.java   
@Test
public void testFilePropertyAfterTriggeringPolicy() {
  rfa.setContext(context);
  rfa.setTriggeringPolicy(new SizeBasedTriggeringPolicy<Object>());
  rfa.setFile("x");
  StatusChecker statusChecker = new StatusChecker(context.getStatusManager());
  statusChecker.assertContainsMatch(Status.ERROR,
          "File property must be set before any triggeringPolicy ");
}
项目:bartleby    文件:RollingFileAppenderTest.java   
/**
 * Test for http://jira.qos.ch/browse/LOGBACK-796
 */
@Test
public void testFileShouldNotMatchFileNamePattern() {
  rfa.setContext(context);
  rfa.setFile(CoreTestConstants.OUTPUT_DIR_PREFIX + "x-2013-04.log");
  tbrp.setFileNamePattern(CoreTestConstants.OUTPUT_DIR_PREFIX + "x-%d{yyyy-MM}.log");
  tbrp.start();

  rfa.setRollingPolicy(tbrp);
  rfa.start();
  StatusChecker statusChecker = new StatusChecker(context);
  final String msg = "File property collides with fileNamePattern. Aborting.";
  boolean containsMatch = statusChecker.containsMatch(Status.ERROR, msg);
  assertTrue("Missing error: " + msg, containsMatch);
}
项目:bartleby    文件:TrivialConfiguratorTest.java   
@Test
public void illFormedXML() {
  TrivialStatusListener tsl = new TrivialStatusListener();
  tsl.start();
  String filename = CoreTestConstants.TEST_SRC_PREFIX + "input/joran/" + "illformed.xml";
  context.getStatusManager().add(tsl);
  try {
    doTest(filename);
  } catch (Exception e) {
  }
  assertEquals(1, tsl.list.size());
  Status s0 = tsl.list.get(0);
  assertTrue(s0.getMessage().startsWith(CoreConstants.XML_PARSING));
}
项目:bartleby    文件:StaxEventRecorderTest.java   
@Test
public void testParsingOfXMLWithAttributesAndBodyText() throws Exception {
  List<StaxEvent> seList = doTest("event1.xml");
  assertTrue(statusChecker.getHighestLevel(0) == Status.INFO);
  //dump(seList);
  assertEquals(11, seList.size());
  assertEquals("test", seList.get(0).getName());
  assertEquals("badBegin", seList.get(1).getName());
  StartEvent startEvent = (StartEvent) seList.get(7);
  assertEquals("John Doe", startEvent.getAttributeByName("name").getValue());
  assertEquals("XXX&", ((BodyEvent) seList.get(8)).getText());
}
项目:bartleby    文件:StaxEventRecorderTest.java   
@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());
}
项目:bartleby    文件:StaxEventRecorderTest.java   
@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());
}
项目:bartleby    文件:SaxEventRecorderTest.java   
@Test
public void test1() throws Exception {
  List<SaxEvent> seList = doTest("event1.xml");
  assertTrue(statusChecker.getHighestLevel(0) == Status.INFO);
  //dump(seList);  
  assertEquals(11, seList.size());
}
项目:bartleby    文件:SaxEventRecorderTest.java   
@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());
}
项目:bartleby    文件:SaxEventRecorderTest.java   
@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"));
}