SAP ABAP Application Log 的使用方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: SAP ABAP Application Log 的使用方法

SAP ABAP Application Log 的使用场景:


(1) 当你想记录应用程序的执行进度,以便以后在需要时重建它;

(2) 当开发人员不确定/无法调试代码(前台/后台)并且想深入了解错误原因时,可以通过检查应用程序日志来确定问题所在的确切位置。


使用事物码 SLG0 创建一个对象,该对象用于识别开发人员在 ABAP 代码里使用的 Application log.


这里创建一个名叫 ZHR_ENC 的应用程序日志对象。

db6a0c31b5c03b8cf9ddf944b2dcb60e.png

再创建一个子对象 ZHRENC_SUB。

这里的场景是,为 COUNTRY 管理创建一个应用程序日志。Country 可以包含不同的 State,这些 State 的执行情况,通过子对象 ZHRENC_SUB 来记录。

db96ec056d1034e21b7b943a8ca3460d.png

测试代码:

type-pools: abap.
data: l_log_handle type balloghndl,
l_timestamp type tzntstmps,
l_timezone type timezone value ‘UTC’,
l_str_log type bal_s_log,
l_str_balmsg type bal_s_msg,
l_str_message type bapiret2,
l_msg_logged type boolean,
l_tab_messages type bapiret2_t.
*-Building messages
*–Use your own message which you want to Display in the log
do 1 times.
call function ‘BALW_BAPIRETURN_GET2’
exporting
type = ‘E’
cl = ‘BPFS’
number = ‘006’
importing
return = l_str_message.
append l_str_message to l_tab_messages.
clear l_str_message.
enddo.
*-Logging messages
convert date sy–datum time sy–uzeit
into time stamp l_timestamp time zone l_timezone.
l_str_log–extnumber = l_timestamp.
condense l_str_log–extnumber.
l_str_log–object = ‘ZHR_ENC’.
l_str_log–subobject = ‘ZHRENC_SUB’.
l_str_log–aldate_del = sy–datum + 5.
call function ‘BAL_LOG_CREATE’
exporting
i_s_log = l_str_log
importing
e_log_handle = l_log_handle
exceptions
log_header_inconsistent = 1
others = 2.
if sy–subrc <> 0.
message id sy–msgid type sy–msgty number sy–msgno
with sy–msgv1 sy–msgv2 sy–msgv3 sy–msgv4 into l_str_message–message.
write: ‘Type’,sy–msgty, ‘Message’,l_str_message–message.
else.
loop at l_tab_messages into l_str_message.
move: l_str_message–type       to l_str_balmsg–msgty,
l_str_message–id         to l_str_balmsg–msgid,
l_str_message–number     to l_str_balmsg–msgno,
l_str_message–message_v1 to l_str_balmsg–msgv1,
l_str_message–message_v2 to l_str_balmsg–msgv2,
l_str_message–message_v3 to l_str_balmsg–msgv3,
l_str_message–message_v4 to l_str_balmsg–msgv4.
call function ‘BAL_LOG_MSG_ADD’
exporting
i_log_handle = l_log_handle
i_s_msg = l_str_balmsg
importing
e_msg_was_logged = l_msg_logged
exceptions
log_not_found = 1
msg_inconsistent = 2
log_is_full = 3
others = 4.
if sy–subrc <> 0.
message id sy–msgid type sy–msgty number sy–msgno
with sy–msgv1 sy–msgv2 sy–msgv3 sy–msgv4 into l_str_message–message.
write: ‘Type’,sy–msgty, ‘Message’,l_str_message–message.
endif.
endloop.
if sy–subrc eq 0.
call function ‘BAL_DB_SAVE’
exporting
i_save_all = abap_true
exceptions
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
others = 4.
if sy–subrc <> 0.
message id sy–msgid type sy–msgty number sy–msgno
with sy–msgv1 sy–msgv2 sy–msgv3 sy–msgv4 into l_str_message–message.
write: ‘Type’,sy–msgty, ‘Message’,l_str_message–message.
else.
write: ‘Messages Saved in the log’.
endif.
endif.
endif.
write : ‘done with log number’,l_str_log–extnumber.


在上面的代码中:

  • BAL_LOG_CREATE:创建应用程序日志对象
  • BAL_LOG_MSG_ADD:它将消息添加到应用程序日志记录对象/子对象
  • BAL_DB_SAVE:将消息保存到数据库中。

可以使用事务代码 SLG1 来监视基于对象的应用程序日志记录。

da94fb6cac14691f750ee21d72d5d4ee.png

相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
相关文章
|
2月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
2月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
2月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
2月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
2月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
2月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
|
2月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
|
2月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
|
2月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id