* cl_s_aut_bal_log implementiert die gundlegenden Funktionen (FuBas) des Application-Log
* Es werden z.B. NICHT implementiert: BAL_DB_SEARCH, BAL_DB_LOAD.
* Es kann nicht mit Verfallsdatum gearbeitet werden.
START-OF-SELECTION.
* Legt eine Protokoll-Instanz an
* Log-Objekte werden in der Transaktion SLG0 definiert --> es werden Transportaufträge generiert
* Anlegen der Objekte erfolgt in den Tabellen
* BALOBJ (Anwendungs-Log: Objekte)
* BALSUB (Anwendungs-Log: Unterobjekte)
DATA(o_applog) = cl_s_aut_bal_log=>create( im_object = 'Z_TEST_LOG'
im_subobject = 'Z_TEST_LOG_U1' ).
* Protokolleinträge hinzufügen -> Nachrichten werden in der Transaktion SE91 gefplegt
* Beispiel: Verwendung der vordefinierten Nachrichtenklasse 'S_AUT', Nr. '128'
o_applog->add_entry( im_msgtype = 'I'
im_msgid = 'S_AUT'
im_msgno = '128' ).
* Beispiel: Verwendung der generische Nachrichtenklasse mit & & & & für die Parameter msgv1 - msgv4
o_applog->add_entry( im_msgtype = 'W'
im_msgid = '01'
im_msgno = '319'
im_msgv1 = 'Test1'
im_msgv2 = 'Test2'
im_msgv3 = 'Test3'
im_msgv4 = 'Test4' ).
TRY.
* Ausnahme auslösen
DATA(result) = 1 / 0.
CATCH cx_root INTO DATA(e_txt).
* Fügt eine Ausnahme hinzu, wobei
* im_probclass: 1 - sehr wichtig
* 2 - wichtig
* 3 - mittel
* 4 - Zusatzinformationen
o_applog->add_exception( im_probclass = '4'
im_msgtype = 'E'
im_exception = e_txt ).
ENDTRY.
* Existieren Meldungen?
IF o_applog->has_statistic( ) = abap_true.
* Protokoll anzeigen
o_applog->show( im_title = 'Application-Log' ).
ENDIF.
* Schließt und persistiert (speichert) das Protokoll
* Protokoll kann in der Transaktion SLG1 angeschaut werden
* Speicherung der Log-Daten erfolgt in den Tabellen
* BALHDR (Anwendungs-Log: Protokollkopf)
* BALDAT (Anwendungs-Log: Daten eines Protokolls)
o_applog->close( im_save = CONV #( abap_true ) ).
Weiterführende Infos: Link, Link, Link und Link