Difference between revisions of "Logging"

From SIMA wiki
Jump to: navigation, search
Line 34: Line 34:
 
Aufruf an alle:
 
Aufruf an alle:
 
Bitte Logging in euren Modulen verwenden, so das ein außenstehender aus dem Log verstehen kann was das Modul tut. Die folgenden Levels stehen zur Verfügung:
 
Bitte Logging in euren Modulen verwenden, so das ein außenstehender aus dem Log verstehen kann was das Modul tut. Die folgenden Levels stehen zur Verfügung:
TRACE: ausführlicheres Debugging (seit Version 1.2.12), Kommentare
+
 
DEBUG: allgemeines Debugging (Methode DiesUndDas wurde mit Parameter SoUndSo aufgerufen …)
+
*TRACE: ausführlicheres Debugging (seit Version 1.2.12), Kommentare
INFO: allgemeine Informationen (Programm gestartet, Programm beendet, Verbindung zu Host Foo aufgebaut, Verarbeitung dauerte SoUndSoviel Sekunden …)
+
*DEBUG: allgemeines Debugging (Methode DiesUndDas wurde mit Parameter SoUndSo aufgerufen …)
WARN: Auftreten einer unerwarteten Situation
+
*INFO: allgemeine Informationen (Programm gestartet, Programm beendet, Verbindung zu Host Foo aufgebaut, Verarbeitung dauerte SoUndSoviel Sekunden …)
ERROR: Fehler (Ausnahme wurde abgefangen. Bearbeitung wurde alternativ fortgesetzt)
+
*WARN: Auftreten einer unerwarteten Situation
FATAL: Kritischer Fehler, Programmabbruch
+
*ERROR: Fehler (Ausnahme wurde abgefangen. Bearbeitung wurde alternativ fortgesetzt)
 +
*FATAL: Kritischer Fehler, Programmabbruch

Revision as of 12:50, 19 February 2013

In package pa._v38.logger gibt die Klasse clsLogger. Es ist der Datalogger basiert auf log4j. Jetzt gibt es die Möglichkeit mehrerer Logger zu verwenden, um unterschiedliche Log-Levels in unterschiedliche Klassen zu verwenden. Bsp.: Für einen Fehler will ich nur Logging für Codeletes und F26 im höchsten Detail ausgeben (TRACE) und für alle anderen Klassen reichen die Errors (ERROR).

So kann man beispielhaft die Loggers definieren:


private static void specifyLoggers() {
                               //Set the levels of specific loggers
                               Logger.getLogger(pa._v38.modules.F46_MemoryTracesForPerception.class).setLevel(Level.TRACE);
                                Logger.getLogger(pa._v38.modules.F21_ConversionToSecondaryProcessForPerception.class).setLevel(Level.TRACE);
                               Logger.getLogger(pa._v38.modules.F23_ExternalPerception_focused.class).setLevel(Level.TRACE);
                               Logger.getLogger(pa._v38.modules.F51_RealityCheckWishFulfillment.class).setLevel(Level.TRACE);
                               Logger.getLogger(pa._v38.modules.F26_DecisionMaking.class).setLevel(Level.TRACE);
                               Logger.getLogger(pa._v38.modules.F52_GenerationOfImaginaryActions.class).setLevel(Level.TRACE);
                               Logger.getLogger(pa._v38.modules.F29_EvaluationOfImaginaryActions.class).setLevel(Level.TRACE);
                               Logger.getLogger("pa._v38.decisionpreparation").setLevel(Level.INFO);
                }
 

In derjenige Klasse, der die Loggers implementiert kann man den Logger so implementieren:


                private static Logger log = Logger.getLogger("pa._v38.decisionpreparation"); 
 

oder so

                /** Specialized Logger for this class */
                private Logger log = Logger.getLogger(this.getClass());
 
 


Aufruf an alle: Bitte Logging in euren Modulen verwenden, so das ein außenstehender aus dem Log verstehen kann was das Modul tut. Die folgenden Levels stehen zur Verfügung:

  • TRACE: ausführlicheres Debugging (seit Version 1.2.12), Kommentare
  • DEBUG: allgemeines Debugging (Methode DiesUndDas wurde mit Parameter SoUndSo aufgerufen …)
  • INFO: allgemeine Informationen (Programm gestartet, Programm beendet, Verbindung zu Host Foo aufgebaut, Verarbeitung dauerte SoUndSoviel Sekunden …)
  • WARN: Auftreten einer unerwarteten Situation
  • ERROR: Fehler (Ausnahme wurde abgefangen. Bearbeitung wurde alternativ fortgesetzt)
  • FATAL: Kritischer Fehler, Programmabbruch