Logging

From SIMA wiki
Revision as of 11:48, 19 February 2013 by Schaat (talk | contribs)
Jump to: navigation, search

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