1. 前言
- 事务代码
- SLG0:创建日志对象、日志子对象
- SLG1:显示应用日志
- SLG3:删除应用日志
- 透明表
- 抬头:BALHDR 应用程序日志: 日志标题
- 行项目:BALDAT 应用程序日志: 日志数据
- 函数模块
- BAL_LOG_CREATE 创建日志处理头
- BAL_LOG_MSG_ADD 向日志处理头中添加消息
- BAL_DB_SAVE 保存日志到数据库
- BAL_DSP_LOG_DISPLAY 显示内存中的消息
2. 创建日志对象
- 事务代码:SLG0
- 创建应用日志对象
- 创建应用日志子对象
3. ABAP中写入SLG1日志
- 代码:
DATA: ls_log TYPE bal_s_log,
ls_msg TYPE bal_s_msg,
l_handle TYPE balloghndl,
lt_handle TYPE bal_t_logh.
ls_log-object = 'ZLOGGING'.
ls_log-subobject = 'ZLOG01'.
ls_log-aluser = sy-uname.
ls_log-alprog = sy-repid.
ls_log-ALDATE_DEL = sy-datum + 120. "保留日志120天,默认9999.12.31
ls_log-DEL_BEFORE = 'X'. "保留日志直到到期
"Open log
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = ls_log
IMPORTING
e_log_handle = l_handle
EXCEPTIONS
log_header_inconsistent = 1
OTHERS = 2.
"Create Message
ls_msg-msgty = 'W'.
ls_msg-msgid = 'Z'.
ls_msg-msgno = '101'.
ls_msg-msgv1 = '1'.
ls_msg-msgv2 = '2'.
ls_msg-msgv3 = '3'.
ls_msg-msgv4 = '4'.
ls_msg-probclass = 2.
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = l_handle
i_s_msg = ls_msg
EXCEPTIONS
log_not_found = 1
msg_inconsistent = 2
log_is_full = 3
OTHERS = 4.
ls_msg-msgty = 'E'.
ls_msg-msgid = 'Z'.
ls_msg-msgno = '102'.
ls_msg-msgv1 = '1'.
ls_msg-msgv2 = '2'.
ls_msg-msgv3 = '3'.
ls_msg-msgv4 = '4'.
ls_msg-probclass = 2.
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = l_handle
i_s_msg = ls_msg
EXCEPTIONS
log_not_found = 1
msg_inconsistent = 2
log_is_full = 3
OTHERS = 4.
"Save log
APPEND l_handle TO lt_handle.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_client = sy-mandt
* I_IN_UPDATE_TASK = ' '
i_save_all = 'X'
i_t_log_handle = lt_handle
* I_2TH_CONNECTION = ' '
* I_2TH_CONNECT_COMMIT = ' '
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
OTHERS = 4.
CLEAR: l_handle,ls_msg,ls_log,lt_handle.
4. 查看SLG1日志