Ich möchte benutzerdefinierte Appender auf der Grundlage von OutputStreamAppender schreiben. Ich habe die folgende Klasse < /p>
geschriebenpackage tests;
import java.io.IOException;
import java.io.OutputStream;
import ch.qos.logback.core.OutputStreamAppender;
public class MyAppender extends OutputStreamAppender {
public MyAppender() {
System.out.println("MyAppender created");
setOutputStream(new OutputStream() {
@Override
public void write(int b) throws IOException {
throw new UnsupportedOperationException();
}
});
}
}
< /code>
Dann habe ich den folgenden Läufer geschrieben: < /p>
package tests;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Logger;
public class Runner {
private static final Logger log = (Logger) LoggerFactory.getLogger(Runner.class);
public static void main(String[] args) {
//log.addAppender(new MyAppender());
log.info("Hello world");
}
}
< /code>
Schließlich habe ich den folgenden logback geschrieben.xml < /code>: < /p>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} - %msg%n
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} - %msg%n
< /code>
und erhielt die folgende Ausgabe: < /p>
MyAppender created
LOGBACK: No context given for tests.MyAppender[null]
20:45:29.957 [main] INFO Runner - Hello world
< /code>
Es zeigt an, dass Appender instanziiert ist. Das Fehlen von Ausnahmen bedeutet jedoch, dass es nie genannt wird. null] "< /p>
Was bedeutet es und wie man repariert? < /p>
Benutzerdefinierte outputStreamAppender nicht ausgeführt: Logback: Kein Kontext für angegeben ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post