mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Log refactoring, part 1 (#4676)
* log: new features * log in exception * log via gui_services Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
56a0dca134
commit
e5e558a312
|
@ -72,6 +72,7 @@ CLASS zcl_abapgit_gui DEFINITION
|
||||||
DATA mi_html_processor TYPE REF TO zif_abapgit_gui_html_processor .
|
DATA mi_html_processor TYPE REF TO zif_abapgit_gui_html_processor .
|
||||||
DATA mi_html_viewer TYPE REF TO zif_abapgit_html_viewer .
|
DATA mi_html_viewer TYPE REF TO zif_abapgit_html_viewer .
|
||||||
DATA mo_html_parts TYPE REF TO zcl_abapgit_html_parts .
|
DATA mo_html_parts TYPE REF TO zcl_abapgit_html_parts .
|
||||||
|
DATA mi_common_log TYPE REF TO zif_abapgit_log .
|
||||||
|
|
||||||
METHODS cache_html
|
METHODS cache_html
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -303,6 +304,11 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
||||||
IF li_gui_error_handler IS BOUND AND li_gui_error_handler->handle_error( ix_exception ) = abap_true.
|
IF li_gui_error_handler IS BOUND AND li_gui_error_handler->handle_error( ix_exception ) = abap_true.
|
||||||
" We rerender the current page to display the error box
|
" We rerender the current page to display the error box
|
||||||
render( ).
|
render( ).
|
||||||
|
ELSEIF ix_exception->mi_log IS BOUND.
|
||||||
|
mi_common_log = ix_exception->mi_log.
|
||||||
|
IF mi_common_log->get_log_level( ) >= zif_abapgit_log=>c_log_level-warning.
|
||||||
|
zcl_abapgit_log_viewer=>show_log( mi_common_log ).
|
||||||
|
ENDIF.
|
||||||
ELSE.
|
ELSE.
|
||||||
MESSAGE ix_exception TYPE 'S' DISPLAY LIKE 'E'.
|
MESSAGE ix_exception TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -476,6 +482,17 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_services~get_log.
|
||||||
|
|
||||||
|
IF iv_create_new = abap_true OR mi_common_log IS NOT BOUND.
|
||||||
|
CREATE OBJECT mi_common_log TYPE zcl_abapgit_log.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_log = mi_common_log.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_services~register_event_handler.
|
METHOD zif_abapgit_gui_services~register_event_handler.
|
||||||
ASSERT ii_event_handler IS BOUND.
|
ASSERT ii_event_handler IS BOUND.
|
||||||
INSERT ii_event_handler INTO mt_event_handlers INDEX 1.
|
INSERT ii_event_handler INTO mt_event_handlers INDEX 1.
|
||||||
|
|
|
@ -29,6 +29,8 @@ CLASS ltcl_gui_mock IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_gui_services~get_html_parts.
|
METHOD zif_abapgit_gui_services~get_html_parts.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
METHOD zif_abapgit_gui_services~get_log.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_asset.
|
METHOD get_asset.
|
||||||
rs_asset = ms_last_cache_signature.
|
rs_asset = ms_last_cache_signature.
|
||||||
|
|
|
@ -25,4 +25,9 @@ INTERFACE zif_abapgit_gui_services
|
||||||
METHODS get_html_parts
|
METHODS get_html_parts
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_parts) TYPE REF TO zcl_abapgit_html_parts .
|
VALUE(ro_parts) TYPE REF TO zcl_abapgit_html_parts .
|
||||||
|
METHODS get_log
|
||||||
|
IMPORTING
|
||||||
|
iv_create_new TYPE abap_bool DEFAULT abap_false
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
|
@ -20,4 +20,7 @@ CLASS lcl_gui_services_dummy IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_gui_services~get_html_parts.
|
METHOD zif_abapgit_gui_services~get_html_parts.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
METHOD zif_abapgit_gui_services~get_log.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -5,16 +5,22 @@ CLASS zcl_abapgit_log DEFINITION
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
INTERFACES zif_abapgit_log .
|
INTERFACES zif_abapgit_log .
|
||||||
|
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
iv_title TYPE string OPTIONAL.
|
||||||
|
|
||||||
|
CLASS-METHODS from_exception
|
||||||
|
IMPORTING
|
||||||
|
io_x TYPE REF TO cx_root
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_log) TYPE REF TO zcl_abapgit_log.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_msg,
|
|
||||||
text TYPE string,
|
|
||||||
type TYPE sy-msgty,
|
|
||||||
END OF ty_msg .
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_log, "in order of occurrence
|
BEGIN OF ty_log, "in order of occurrence
|
||||||
msg TYPE ty_msg,
|
msg TYPE zif_abapgit_log=>ty_msg,
|
||||||
rc TYPE sy-subrc,
|
rc TYPE sy-subrc,
|
||||||
item TYPE zif_abapgit_definitions=>ty_item,
|
item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
exception TYPE REF TO cx_root,
|
exception TYPE REF TO cx_root,
|
||||||
|
@ -37,6 +43,24 @@ ENDCLASS.
|
||||||
CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
zif_abapgit_log~set_title( iv_title ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD from_exception.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_log.
|
||||||
|
|
||||||
|
IF io_x IS BOUND.
|
||||||
|
ro_log->zif_abapgit_log~add_exception( io_x ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_messages_status.
|
METHOD get_messages_status.
|
||||||
|
|
||||||
DATA lr_msg TYPE REF TO zif_abapgit_log=>ty_msg.
|
DATA lr_msg TYPE REF TO zif_abapgit_log=>ty_msg.
|
||||||
|
@ -73,6 +97,17 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
<ls_log>-item = is_item.
|
<ls_log>-item = is_item.
|
||||||
<ls_log>-exception = ix_exc.
|
<ls_log>-exception = ix_exc.
|
||||||
|
|
||||||
|
CASE iv_type.
|
||||||
|
WHEN 'E' OR 'A' OR 'X'.
|
||||||
|
<ls_log>-msg-level = zif_abapgit_log=>c_log_level-error.
|
||||||
|
WHEN 'W'.
|
||||||
|
<ls_log>-msg-level = zif_abapgit_log=>c_log_level-warning.
|
||||||
|
WHEN 'S' OR 'I'.
|
||||||
|
<ls_log>-msg-level = zif_abapgit_log=>c_log_level-info.
|
||||||
|
WHEN OTHERS. "unknown
|
||||||
|
ASSERT 0 = 1.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,7 +125,7 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lx_exc TYPE REF TO cx_root.
|
DATA lx_exc TYPE REF TO cx_root.
|
||||||
DATA lv_msg TYPE string.
|
DATA lv_msg TYPE string.
|
||||||
lx_exc ?= ix_exc.
|
lx_exc = ix_exc.
|
||||||
DO.
|
DO.
|
||||||
lv_msg = lx_exc->get_text( ).
|
lv_msg = lx_exc->get_text( ).
|
||||||
zif_abapgit_log~add( iv_msg = lv_msg
|
zif_abapgit_log~add( iv_msg = lv_msg
|
||||||
|
@ -142,6 +177,17 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_log~clone.
|
||||||
|
|
||||||
|
DATA lo_log TYPE REF TO zcl_abapgit_log.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_log EXPORTING iv_title = mv_title.
|
||||||
|
lo_log->mt_log = mt_log.
|
||||||
|
ri_log = lo_log.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_log~count.
|
METHOD zif_abapgit_log~count.
|
||||||
rv_count = lines( mt_log ).
|
rv_count = lines( mt_log ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -185,6 +231,24 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_log~get_log_level.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_log> LIKE LINE OF mt_log.
|
||||||
|
|
||||||
|
rv_level = zif_abapgit_log=>c_log_level-empty.
|
||||||
|
|
||||||
|
LOOP AT mt_log ASSIGNING <ls_log>.
|
||||||
|
IF <ls_log>-msg-level = zif_abapgit_log=>c_log_level-error.
|
||||||
|
rv_level = zif_abapgit_log=>c_log_level-error.
|
||||||
|
EXIT.
|
||||||
|
ELSEIF <ls_log>-msg-level > rv_level.
|
||||||
|
rv_level = <ls_log>-msg-level.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_log~get_messages.
|
METHOD zif_abapgit_log~get_messages.
|
||||||
DATA ls_msg TYPE zif_abapgit_log~ty_log_out.
|
DATA ls_msg TYPE zif_abapgit_log~ty_log_out.
|
||||||
FIELD-SYMBOLS <ls_log> TYPE ty_log.
|
FIELD-SYMBOLS <ls_log> TYPE ty_log.
|
||||||
|
@ -202,22 +266,22 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
METHOD zif_abapgit_log~get_status.
|
METHOD zif_abapgit_log~get_status.
|
||||||
|
|
||||||
DATA lr_log TYPE REF TO ty_log.
|
DATA lr_log TYPE REF TO ty_log.
|
||||||
rv_status = 'S'.
|
rv_status = zif_abapgit_log=>c_status-ok.
|
||||||
LOOP AT mt_log REFERENCE INTO lr_log.
|
LOOP AT mt_log REFERENCE INTO lr_log.
|
||||||
CASE lr_log->msg-type.
|
CASE lr_log->msg-type.
|
||||||
WHEN 'E' OR 'A' OR 'X'.
|
WHEN 'E' OR 'A' OR 'X'.
|
||||||
rv_status = 'E'. "not okay
|
rv_status = zif_abapgit_log=>c_status-error.
|
||||||
EXIT.
|
EXIT.
|
||||||
WHEN 'W'.
|
WHEN 'W'.
|
||||||
rv_status = 'W'. "maybe
|
rv_status = zif_abapgit_log=>c_status-warning.
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
WHEN 'S' OR 'I'.
|
WHEN 'S' OR 'I'.
|
||||||
IF rv_status <> 'W'.
|
IF rv_status <> zif_abapgit_log=>c_status-warning.
|
||||||
rv_status = 'S'. "okay
|
rv_status = zif_abapgit_log=>c_status-ok.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
WHEN OTHERS. "unknown
|
WHEN OTHERS. "unknown
|
||||||
CONTINUE.
|
ASSERT 0 = 1.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
@ -240,7 +304,29 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_log~merge_with.
|
||||||
|
|
||||||
|
DATA lo_log TYPE REF TO zcl_abapgit_log.
|
||||||
|
DATA lt_log_temp LIKE lo_log->mt_log.
|
||||||
|
|
||||||
|
IF ii_log IS BOUND.
|
||||||
|
lo_log ?= ii_log.
|
||||||
|
IF iv_min_level > 0.
|
||||||
|
lt_log_temp = lo_log->mt_log.
|
||||||
|
DELETE lt_log_temp WHERE msg-level < iv_min_level.
|
||||||
|
APPEND LINES OF lt_log_temp TO mt_log.
|
||||||
|
ELSE.
|
||||||
|
APPEND LINES OF lo_log->mt_log TO mt_log.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_log = me.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_log~set_title.
|
METHOD zif_abapgit_log~set_title.
|
||||||
mv_title = iv_title.
|
mv_title = iv_title.
|
||||||
|
ri_log = me.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -7,7 +7,13 @@ CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
setup,
|
setup,
|
||||||
|
from_x FOR TESTING,
|
||||||
|
get_status FOR TESTING,
|
||||||
|
get_log_level FOR TESTING,
|
||||||
|
merge_with FOR TESTING,
|
||||||
|
merge_with_min_level FOR TESTING,
|
||||||
empty FOR TESTING,
|
empty FOR TESTING,
|
||||||
|
clone FOR TESTING,
|
||||||
add FOR TESTING.
|
add FOR TESTING.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -58,4 +64,194 @@ CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_status.
|
||||||
|
|
||||||
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
mi_cut->add_success( 'success' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_status( )
|
||||||
|
exp = zif_abapgit_log=>c_status-ok ).
|
||||||
|
|
||||||
|
mi_cut->add_warning( 'warn' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_status( )
|
||||||
|
exp = zif_abapgit_log=>c_status-warning ).
|
||||||
|
|
||||||
|
mi_cut->add_error( 'err' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_status( )
|
||||||
|
exp = zif_abapgit_log=>c_status-error ).
|
||||||
|
|
||||||
|
mi_cut->clear( ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_status( )
|
||||||
|
exp = zif_abapgit_log=>c_status-ok ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
|
||||||
|
mi_cut->add_exception( lo_x ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_status( )
|
||||||
|
exp = zif_abapgit_log=>c_status-error ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD merge_with.
|
||||||
|
|
||||||
|
DATA li_secondary_log LIKE mi_cut.
|
||||||
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
||||||
|
|
||||||
|
CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
|
||||||
|
|
||||||
|
mi_cut->add_success( 'success' ).
|
||||||
|
li_secondary_log->add_warning( 'warn' ).
|
||||||
|
mi_cut->merge_with( li_secondary_log ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->count( )
|
||||||
|
exp = 2 ).
|
||||||
|
|
||||||
|
lt_act_msgs = mi_cut->get_messages( ).
|
||||||
|
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD merge_with_min_level.
|
||||||
|
|
||||||
|
DATA li_secondary_log LIKE mi_cut.
|
||||||
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
||||||
|
|
||||||
|
CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
|
||||||
|
|
||||||
|
mi_cut->add_success( 'success' ).
|
||||||
|
li_secondary_log->add_warning( 'warn' ).
|
||||||
|
mi_cut->merge_with(
|
||||||
|
ii_log = li_secondary_log
|
||||||
|
iv_min_level = zif_abapgit_log=>c_log_level-error ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->count( )
|
||||||
|
exp = 1 ).
|
||||||
|
|
||||||
|
lt_act_msgs = mi_cut->get_messages( ).
|
||||||
|
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
" change level to warning
|
||||||
|
mi_cut->merge_with(
|
||||||
|
ii_log = li_secondary_log
|
||||||
|
iv_min_level = zif_abapgit_log=>c_log_level-warning ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->count( )
|
||||||
|
exp = 2 ).
|
||||||
|
|
||||||
|
lt_act_msgs = mi_cut->get_messages( ).
|
||||||
|
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD from_x.
|
||||||
|
|
||||||
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
||||||
|
|
||||||
|
" Uninitialized
|
||||||
|
mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->count( )
|
||||||
|
exp = 0 ).
|
||||||
|
|
||||||
|
" Notmal exception
|
||||||
|
TRY.
|
||||||
|
zcx_abapgit_exception=>raise( 'Error!' ).
|
||||||
|
CATCH zcx_abapgit_exception INTO lo_x.
|
||||||
|
mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_bound( mi_cut ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->count( )
|
||||||
|
exp = 1 ).
|
||||||
|
|
||||||
|
lt_act_msgs = mi_cut->get_messages( ).
|
||||||
|
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY type = 'E'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'Error!'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_log_level.
|
||||||
|
|
||||||
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_log_level( )
|
||||||
|
exp = zif_abapgit_log=>c_log_level-empty ).
|
||||||
|
|
||||||
|
mi_cut->add_success( 'success' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_log_level( )
|
||||||
|
exp = zif_abapgit_log=>c_log_level-info ).
|
||||||
|
|
||||||
|
mi_cut->add_warning( 'warn' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_log_level( )
|
||||||
|
exp = zif_abapgit_log=>c_log_level-warning ).
|
||||||
|
|
||||||
|
mi_cut->add_error( 'err' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_log_level( )
|
||||||
|
exp = zif_abapgit_log=>c_log_level-error ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
|
||||||
|
mi_cut->add_exception( lo_x ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mi_cut->get_log_level( )
|
||||||
|
exp = zif_abapgit_log=>c_log_level-error ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD clone.
|
||||||
|
|
||||||
|
DATA li_clone TYPE REF TO zif_abapgit_log.
|
||||||
|
|
||||||
|
mi_cut->add( 'Hello' ).
|
||||||
|
mi_cut->set_title( 'My log' ).
|
||||||
|
|
||||||
|
li_clone = mi_cut->clone( ).
|
||||||
|
|
||||||
|
mi_cut->add( 'World' ).
|
||||||
|
mi_cut->set_title( 'My log CHANGED' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = li_clone->count( )
|
||||||
|
exp = 1 ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = li_clone->get_title( )
|
||||||
|
exp = 'My log' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -1,6 +1,20 @@
|
||||||
INTERFACE zif_abapgit_log
|
INTERFACE zif_abapgit_log
|
||||||
PUBLIC .
|
PUBLIC .
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
BEGIN OF c_status,
|
||||||
|
ok TYPE sy-msgty VALUE 'S',
|
||||||
|
error TYPE sy-msgty VALUE 'E',
|
||||||
|
warning TYPE sy-msgty VALUE 'W',
|
||||||
|
END OF c_status.
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
BEGIN OF c_log_level,
|
||||||
|
empty TYPE i VALUE 0,
|
||||||
|
info TYPE i VALUE 1,
|
||||||
|
warning TYPE i VALUE 2,
|
||||||
|
error TYPE i VALUE 3,
|
||||||
|
END OF c_log_level.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_log_out,
|
BEGIN OF ty_log_out,
|
||||||
|
@ -17,6 +31,7 @@ INTERFACE zif_abapgit_log
|
||||||
BEGIN OF ty_msg,
|
BEGIN OF ty_msg,
|
||||||
text TYPE string,
|
text TYPE string,
|
||||||
type TYPE sy-msgty,
|
type TYPE sy-msgty,
|
||||||
|
level TYPE i,
|
||||||
END OF ty_msg .
|
END OF ty_msg .
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_msgs TYPE STANDARD TABLE OF ty_msg
|
ty_msgs TYPE STANDARD TABLE OF ty_msg
|
||||||
|
@ -76,10 +91,25 @@ INTERFACE zif_abapgit_log
|
||||||
METHODS get_status
|
METHODS get_status
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_status) TYPE sy-msgty .
|
VALUE(rv_status) TYPE sy-msgty .
|
||||||
|
METHODS get_log_level
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_level) TYPE i .
|
||||||
METHODS get_title
|
METHODS get_title
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_title) TYPE string .
|
VALUE(rv_title) TYPE string .
|
||||||
METHODS set_title
|
METHODS set_title
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_title TYPE csequence .
|
!iv_title TYPE csequence
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
|
||||||
|
METHODS merge_with
|
||||||
|
IMPORTING
|
||||||
|
ii_log TYPE REF TO zif_abapgit_log
|
||||||
|
iv_min_level TYPE i DEFAULT 0
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
|
||||||
|
METHODS clone
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
|
||||||
|
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
|
@ -27,6 +27,7 @@ CLASS zcx_abapgit_exception DEFINITION
|
||||||
DATA msgv3 TYPE symsgv READ-ONLY .
|
DATA msgv3 TYPE symsgv READ-ONLY .
|
||||||
DATA msgv4 TYPE symsgv READ-ONLY .
|
DATA msgv4 TYPE symsgv READ-ONLY .
|
||||||
DATA mt_callstack TYPE abap_callstack READ-ONLY .
|
DATA mt_callstack TYPE abap_callstack READ-ONLY .
|
||||||
|
DATA mi_log TYPE REF TO zif_abapgit_log READ-ONLY.
|
||||||
|
|
||||||
"! Raise exception with text
|
"! Raise exception with text
|
||||||
"! @parameter iv_text | Text
|
"! @parameter iv_text | Text
|
||||||
|
@ -36,6 +37,7 @@ CLASS zcx_abapgit_exception DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_text TYPE clike
|
!iv_text TYPE clike
|
||||||
!ix_previous TYPE REF TO cx_root OPTIONAL
|
!ix_previous TYPE REF TO cx_root OPTIONAL
|
||||||
|
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
"! Raise exception with T100 message
|
"! Raise exception with T100 message
|
||||||
|
@ -57,6 +59,7 @@ CLASS zcx_abapgit_exception DEFINITION
|
||||||
VALUE(iv_msgv2) TYPE symsgv DEFAULT sy-msgv2
|
VALUE(iv_msgv2) TYPE symsgv DEFAULT sy-msgv2
|
||||||
VALUE(iv_msgv3) TYPE symsgv DEFAULT sy-msgv3
|
VALUE(iv_msgv3) TYPE symsgv DEFAULT sy-msgv3
|
||||||
VALUE(iv_msgv4) TYPE symsgv DEFAULT sy-msgv4
|
VALUE(iv_msgv4) TYPE symsgv DEFAULT sy-msgv4
|
||||||
|
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
||||||
!ix_previous TYPE REF TO cx_root OPTIONAL
|
!ix_previous TYPE REF TO cx_root OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
@ -69,6 +72,7 @@ CLASS zcx_abapgit_exception DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!textid LIKE if_t100_message=>t100key OPTIONAL
|
!textid LIKE if_t100_message=>t100key OPTIONAL
|
||||||
!previous LIKE previous OPTIONAL
|
!previous LIKE previous OPTIONAL
|
||||||
|
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
||||||
!msgv1 TYPE symsgv OPTIONAL
|
!msgv1 TYPE symsgv OPTIONAL
|
||||||
!msgv2 TYPE symsgv OPTIONAL
|
!msgv2 TYPE symsgv OPTIONAL
|
||||||
!msgv3 TYPE symsgv OPTIONAL
|
!msgv3 TYPE symsgv OPTIONAL
|
||||||
|
@ -110,7 +114,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
CLASS zcx_abapgit_exception IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||||
|
@ -121,6 +125,7 @@ CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||||
me->msgv2 = msgv2.
|
me->msgv2 = msgv2.
|
||||||
me->msgv3 = msgv3.
|
me->msgv3 = msgv3.
|
||||||
me->msgv4 = msgv4.
|
me->msgv4 = msgv4.
|
||||||
|
me->mi_log = ii_log.
|
||||||
|
|
||||||
CLEAR me->textid.
|
CLEAR me->textid.
|
||||||
IF textid IS INITIAL.
|
IF textid IS INITIAL.
|
||||||
|
@ -299,7 +304,9 @@ CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||||
|
|
||||||
split_text_to_symsg( lv_text ).
|
split_text_to_symsg( lv_text ).
|
||||||
|
|
||||||
raise_t100( ix_previous = ix_previous ).
|
raise_t100(
|
||||||
|
ii_log = ii_log
|
||||||
|
ix_previous = ix_previous ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -321,6 +328,7 @@ CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||||
RAISE EXCEPTION TYPE zcx_abapgit_exception
|
RAISE EXCEPTION TYPE zcx_abapgit_exception
|
||||||
EXPORTING
|
EXPORTING
|
||||||
textid = ls_t100_key
|
textid = ls_t100_key
|
||||||
|
ii_log = ii_log
|
||||||
msgv1 = iv_msgv1
|
msgv1 = iv_msgv1
|
||||||
msgv2 = iv_msgv2
|
msgv2 = iv_msgv2
|
||||||
msgv3 = iv_msgv3
|
msgv3 = iv_msgv3
|
||||||
|
|
Loading…
Reference in New Issue
Block a user