class Log

Verwaltet die Zeichenketten, die der Agent ausgeben möchte

Public Methods

String toString()
Beschreibung als String fuer die Ausgabe

Public

Anfragen ob Modus mit DebugLevel aktiv
bool isActive( int mode, int debugLevel )
Fragt ob der als Paramter angegebene Modus mit dem angebenen DebugLevel aktiv ist
Ins Log schreiben.
void error( const String& message )
Meldet Fehler
void warning( const String& message )
Meldet Warnung
void info( const String& message )
Debug-Info
Log anlegen und initialisieren
Log( int debugLevel = 0, ostream& target = cout )
Konstruktor
void init( Configuration *aConfigurationObject )
Initialisiert das Log-Objekt neu
Log-Makros
#define IS_ACTIVE( debugMode, debugLevel )
Fragt, ob ein Debug-Mode aktiviert ist
#define ERROR( message )
Meldet Fehler
#define WARNING( debugMode, message )
Meldet Warnung
#define INFO( debugMode, debugLevel, message )
Debug-Info
Mögliche Modi fürs Logging.
const int ANY
beliebiger Modus
const int COMMUNICATOR
Modus für den Communicator
const int CONFIGURATION
Modus für die Configuration
const int SENSORS
Modus für die Sensoren
const int EFFECTORS
Modus für die Effektoren
const int SITUATION
Modus für die Situation
const int WORLD_MODEL
Modus für das Weltmodel
const int TIMER
Modus für den Timer
const int DELIBERATOR
Modus für den Deliberator
const int CONSTRAINTS
Modus für die Constraints
const int PASSIVE_OPTIONS
Modus für die PassiveOptions
const int ACTIVE_OPTIONS
Modus für die ActiveOptions
const int MODELLED_OBJECTS
Modus für alle ModelledObjects
const int SKILLS
Modus für die Skills
const int MODE_COUNT
Anzahl aller Modi

Private Fields

Array <int> theModeActivation
Array, welches für jeden Modus enthält, wie stark er aktiviert wurde
ostream* theTargetStream
Der Stream auf dem die Ausgabe erfolgt

Documentation

Verwaltet die Zeichenketten, die der Agent ausgeben möchte. Abhängig vom eingestellten DebugModus und dazu gehörigen DebugLevel werden Zeilen ausgegeben oder nicht.
Der DebugModus setzt sich aus mehreren Modi zusammen, deren DebugLevel im Konfigurationsfile des Agenten festgelegt werden. Warnungen und Fehler (Debug-Informationen der Level 0 und 1) werden immer ausgegeben.

Modi:
Communicator Debug-Informationen des Communicators
Sensor Debug-Informationen der Sensoren
... ...

DebugLevel:
0 Fehler ausgeben
1 zusätzlich Warnungen ausgeben
2-4 zusätzlich Funktionseintritte und Funktionsbeendigungen
5-7 zusätzlich Ergebnisse von Funktionen (wichtige Informationen, wie see, hear, utility-Werte)
8-10 zusätzlich Informationen zu Zwischenschritten
11-15 zusätzlich weitere Informationen

Wichtige Funktionseintritte sollten beispielsweise mit einem Level von 2, unwichtige Funktionseintritte dagegen mit einen Level von 4 aktiviert werden.

Beispiel zur Benutzung:

  INFO( Log::WORLD_MODEL, 7, "Hallo" )
  
In diesem Fall wird "Hallo" ausgegeben, wenn der DebugLevel für das Weltmodell auf 7 oder größer gesetzt wurde.

Wenn man viele Debug-Ausschriften ausgeben möchte, dann bietet sich diese Benutzung an:

  if ( IS_ACTIVE( Log::WORLD_MODEL, 7 ) ) {
    globalLog->info( "Hallo" );
    globalLog->info( "nochmal Hallo" );
  }
  

Die Markos schreiben immer ins globalLog.

Quelltext

[Header | [Implementierung]

CVS Informationen zum Interface

  **************************************************
  *
  * Aktueller Stand
  *
  *   $RCSfile: Log.h,v $
  *   $Revision: 1.27 $
  *   $Date: 1998/08/14 13:20:47 $
  *   $Author: myritz $ 
  *
  **************************************************
  
Mögliche Modi fürs Logging.

const int ANY
beliebiger Modus

const int COMMUNICATOR
Modus für den Communicator

const int CONFIGURATION
Modus für die Configuration

const int SENSORS
Modus für die Sensoren

const int EFFECTORS
Modus für die Effektoren

const int SITUATION
Modus für die Situation

const int WORLD_MODEL
Modus für das Weltmodel

const int TIMER
Modus für den Timer

const int DELIBERATOR
Modus für den Deliberator

const int CONSTRAINTS
Modus für die Constraints

const int PASSIVE_OPTIONS
Modus für die PassiveOptions

const int ACTIVE_OPTIONS
Modus für die ActiveOptions

const int MODELLED_OBJECTS
Modus für alle ModelledObjects

const int SKILLS
Modus für die Skills

const int MODE_COUNT
Anzahl aller Modi

Log anlegen und initialisieren

Log( int debugLevel = 0, ostream& target = cout )
Konstruktor. Setzt das DebugLevel und den Ausgabe-Stream. Weiterhin aktiviert er alle Modi für die Ausgabe mit dem angegebenen DebgugLevel.

void init( Configuration *aConfigurationObject )
Initialisiert das Log-Objekt neu. Initialisiert, mit dem als Parameter angegebenen Configurationsobjekt, die Debug-Level für alle Ausgabemodi.
Parameters:
aConfigurationObject - Pointer auf das Configuration-Objekt.

Anfragen ob Modus mit DebugLevel aktiv

bool isActive( int mode, int debugLevel )
Fragt ob der als Paramter angegebene Modus mit dem angebenen DebugLevel aktiv ist. Der Modus ist aktiv, wenn sein eingestellter DebugLevel größer oder gleich dem angegebenen DebugLevel ist. Diese Methode sollte in einer if-Anweisung, die info Anweisungen kapseln.
Parameters:
mode - Modus für den die Aktivität erfragt wird
debugLevel - Debug-Level für den die Aktivität erfragt wird

Ins Log schreiben.

void error( const String& message )
Meldet Fehler. Diese Methode sollte nie von isActive gekapselt werden.

void warning( const String& message )
Meldet Warnung

void info( const String& message )
Debug-Info. Diese Metode sollte immer von active gekapselt werden.
Parameters:
message - Die Nachricht die ausgegeben werden soll.

Log-Makros

#define IS_ACTIVE( debugMode, debugLevel )
Fragt, ob ein Debug-Mode aktiviert ist. Wenn ja, wird die der folgende Block ausgefuehrt, andernfalls nicht.
Parameters:
debugMode - Modus für den die Aktivität erfragt wird
debugLevel - Debug-Level für den die Aktivität erfragt wird

#define ERROR( message )
Meldet Fehler. Eine Ausgabe erfolgt immer im globalLog.

#define WARNING( debugMode, message )
Meldet Warnung. Eine Ausgabe erfolgt im globalLog, wenn der angegebene Modus debugMode im Log-Objekt mit einen debugLevel von 1 oder höher eingestellt ist.
Parameters:
debugMode - Der Modus bei dem ausgegeben werden soll.
message - Die Nachricht die ausgegeben werden soll.

#define INFO( debugMode, debugLevel, message )
Debug-Info. Eine Ausgabe erfolgt im globalLog, wenn der angegebene Modus debugMode im Log-Objekt mit den angegebenen debugLevel aktiv ist. Der Modus ist aktiv, wenn sein eingestellter DebugLevel größer oder gleich dem angegebenen DebugLevel ist.
Parameters:
debugMode - Der Modus bei dem ausgegeben werden soll.
debugLevel - Der Debug-Level ab dem ausgeben werden soll.
message - Die Nachricht die ausgegeben werden soll.

String toString()
Beschreibung als String fuer die Ausgabe

Array <int> theModeActivation
Array, welches für jeden Modus enthält, wie stark er aktiviert wurde

ostream* theTargetStream
Der Stream auf dem die Ausgabe erfolgt


This class has no child classes.

alphabetic index hierarchy of classes


Hauptseite

Einleitung | Architektur | Dynamische Zusammenhänge | Referenzhandbuch | FAQ | Anhang A | Anhang B

generated by doc++