Skip to content

Logging

wurmf edited this page Jun 12, 2018 · 2 revisions

Logger Statements

Logger#error

Wo?

Error-Messages werden immer in der Klasse geschrieben in der die Exception zum ersten mal auftritt und in eine neue Exception gekapselt. Das Loggen passiert in der Schicht, die die Exception endgültig handeln kann, was meistens die GUI-Schicht ist. In der Service-Schicht wird eine PersistenceException nur in eine ServiceException gewrappt und weiter zur GUI geworfen: catch(PersistenceException e) -> throw new ServiceException(e)

Wie?

Log4J befolgt standardmäßig folgendes Muster zur Erstellung von Logger-Messages: %time [%threadname] %priority %classname - %message

  • time: Zeitpunkt zu dem geloggt wurde
  • threadname: Name des Threads von dem das Logger-Statement kommt
  • priority: ERROR, INFO, DEBUG
  • classname: Name der verursachenden Klasse
  • message: String-message die beim Aufruf an #error, #debug, bzw. #info übergeben wird

Solche Statements sehen in der Konsole dann folgendermaßen aus: 17:29:09.936 [JavaFX Application Thread] INFO a.a.t.s.w.q.a.MainApplication - Stopping Application

Unsere Messages sollen eines dieser beiden Muster befolgen: %methodname - %actualmessage - %exception %methodname - %exception

methodname: Name der Methode von der aus die Exception aufgetreten ist. Tritt die Exception im Konstruktor auf ist "constructor" als methodname zu verwenden actualmessage: Die tatsächliche Message vom Programmierer, in den meisten Fällen wsl. nicht nötig, nur falls zusätzliche Information gegeben werden soll. exception: Die Exception in String-Form.

UPDATE 10.01.2016 Wie von Felix vorgeschlagen wird ab jetzt in den Logger-Statements folgendes Muster verwendet:

LOGGER.error("openConnection - ", e);

Durch diese Schreibweise kan man bei der Konfiguration des Loggers besser angeben welche Informationen man bei welchem Severity Level haben möchte. Um die Konfiguration des Loggers wird sich Martin kümmern, die Änderungen an den Aufrufen/Messages muss jeder selbst durchführen!

Clone this wiki locally