slf4j-logging in der Konsole statt Datei
Ich Teste Milton WebDAV API und ich muss mich melden, wenn irgendein Dokument geöffnet ist. Ich kann es Anmeldung auf der Eclipse-Konsole, aber es nicht schaffen, legen Sie die Nachricht auf eine externe Datei.
Fanden mehrere links hier bei SO und Google, aber keiner arbeitete. Ich habe über 4h in diesem schon. Irgendwelche Vermutungen?
Hier ist die situation (versucht zu formatieren, so gut ich konnte):
log4j.Eigenschaften
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/home/paulo/workspace/MiltonTutorial/logs/log.txt
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
# Root logger option
log4j.rootLogger=INFO, file
DocumentResource.java
public class DocumentResource implements GetableResource,
PropFindableResource, DeletableResource, MoveableResource,
CopyableResource, ReplaceableResource, PropPatchableResource, MultiNamespaceCustomPropertyResource {
private final static Logger log = LoggerFactory.getLogger(DocumentResource.class);
Document doc;
(...)
@Override
public void sendContent(OutputStream out, Range arg1,
Map<String, String> arg2, String arg3) throws IOException,
NotAuthorizedException, BadRequestException {
log.info(">>> File {} opened", doc.getFileName());
out.write(this.doc.getContent());
}
Eclipse-Konsole beim ausführen von 'testfile' auf einen WebDAV-client
08/02/2013 18:03:15 com.ettrema.tutorial.milton.DocumentResource sendContent
INFO: >>> Datei testfile geöffnet
log.txt big content hier
Dank!
Was Sie sagen, ist, dass, während die meisten der log-Meldungen am Ende in log.txt die Ausgabe von
Eigentlich bin ich nicht daran interessiert, den Inhalt, die log.txt nun, nur diejenigen, die das, was ich möchte zu Protokoll mit
DocumentResource
(und nur diese) landet auf der Konsole? Möglicherweise müssen Sie mehr als eine log4j.properties
irgendwo im classpath?Eigentlich bin ich nicht daran interessiert, den Inhalt, die log.txt nun, nur diejenigen, die das, was ich möchte zu Protokoll mit
log.info("...")
, der nicht Protokollierung in der Datei, nur auf der Konsole.InformationsquelleAutor paulochf | 2013-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach Bearbeiten Sie Ihre Datei log4j, um so etwas wie dieses:
Wenn die logger-Einstellungen nicht angewendet werden (dh Sie sind nicht zu sehen, Protokolle erscheinen in Ihrer Datei) dann haben Sie wahrscheinlich eine andere log4j.Eigenschaften-Datei irgendwo in Ihrem Klassenpfad verwendet wird, statt diesen einen. Manchmal kann es aufgenommen werden, in jar-Dateien (eek!)
Es hält die Protokollierung nur Nachrichten von
org.hibernate...
,io.milton
ist nicht auf die Datei.Ich erkannte nun, dass Ihre .Eigenschaften Letzte Zeile Verweise
io.milton
. Sollte es nicht die Referenz DocumentResource.java Paket?InformationsquelleAutor brad
slf4j
ist nur ein wrapper für andere Holzfäller, von denenlog4j
wird verwendet, um sich die Sachen, um die Datei (die, die konfiguriert istlog4j.properties
).Wahrscheinlich der rest des Systems ist mit Log4J-API, während Ihr SLF4 ist konfiguriert, um log auf der Konsole.
Stellen Sie sicher, Sie haben
slf4j-log4j12.jar
in Ihrem classpath, nichtslf4j-simple
eineJa,
slf4j-log4j12.jar
ist es.InformationsquelleAutor Alex Vayda