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"));
}