Apache Commons Logging erklärt: Es gibt nicht viel Dokumentation über diese im Internet verfügbar. Dies ist ein kleiner Artikel zu Ihrem Vorteil:
Um Nachrichten in Ihrem Java-Code zu protokollieren, müssen Sie zwei Klassen in Ihren Quellcode importieren.
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
nun Ihr Protokoll zu erstellen, ein Attribut in der Klasse in einem von zwei Arten erstellen:
private Log m_log = LogFactory.getLog(MyClass.class);
oder
private Log m_log = LogFactory.getLog("MyClassLogger");
Die erste Option ist die Schaffung nur eine generische Logger für Ihre Klasse, die von den Standardprotokollierungsoptionen gesteuert wird. Die zweite Möglichkeit besteht darin, einen spezifischen Logger zu erstellen, den Sie "MyClassLogger" genannt haben und der einzeln auf die Standardwerte eingestellt werden kann. Möglicherweise möchten Sie das tun, wenn Sie anderen Quellcode von Dritt-Anbieter verwenden, der Protokollierung verwendet, aber Sie möchten die Debugs oder andere Information von dem Quellcode nicht anzeigen. Die Verwendung des Loggers ist ziemlich einfach. Sie können Protokollmeldungen senden, indem Sie eine der Priorität entsprechende Methode aufrufen:
m_log.fatal(Object message);
m_log.fatal(Object message, Throwable t);
m_log.error(Object message);
m_log.error(Object message, Throwable t);
m_log.warn(Object message);
m_log.warn(Object message, Throwable t);
m_log.info(Object message);
m_log.info(Object message, Throwable t);
m_log.debug(Object message);
m_log.debug(Object message, Throwable t);
m_log.trace(Object message);
m_log.trace(Object message, Throwable t);
Diese Methoden werden in der Reihenfolge der Priorität von der höchsten zur niedrigsten aufgelistet. Die Commons-Protokollierung ist standardmäßig so eingestellt, dass alle Nachrichten von INFO und höher angezeigt werden. Wie Sie sehen können, ist jede Methode mit einer Methode überladen, bei der Sie einen Throwable-Typ, z. B. eine Exception, senden können - sehr praktisch! Das ist alles, was Sie tun müssen, um die Nachrichten zu protokollieren.
In Ihrem Fall müssen Sie nur verwenden:
logger.error("IOException Occured :", exception);
Es besteht keine Notwendigkeit stacktrace als das Ausnahmeobjekt hier zu nennen geworfen mit Ausnahme protokolliert werden.
+1 der Stack-Trace wird nach Bedarf ausgefüllt, und ich kann mir keinen guten Grund vorstellen, ihn explizit aufzurufen, es sei denn, Sie möchten die Stack-Trace ändern (was ich in einer meiner Bibliotheken gemacht habe, aber das macht es eine gute Idee in der Regel :) –
@ peter-lawrey @ jb-nizet Also was wird 'exception.fillInStackTrace()' in meinem Fall tun. –
Nichts, da der Konstruktor von Throwable bereits fillInStackTrace() aufruft. Der Stack-Trace ist standardmäßig vorhanden. Mach dir keine Sorgen darüber. –