应用程序日志Sample

以下是一个应用程序日志的例子,

主要用到了:BAL_LOG_CREATE、BAL_LOG_MSG_ADD、BAL_DB_SAVE这几个FUNCTION。

[@more@]

REPORT Z_APP_LOG.

*----------------------------------------------------------------------*
* CONSTANTS DEFINITION
*----------------------------------------------------------------------*
CONSTANTS:
PROBCLASS_VERY_HIGH TYPE BAL_S_MSG-PROBCLASS VALUE '1'.

*----------------------------------------------------------------------*
* DATA DEFINITION
*----------------------------------------------------------------------*
DATA:
G_S_LOG TYPE BAL_S_LOG, "Log header data
G_LOG_HANDLE TYPE BALLOGHNDL, "Log handle
G_MSG(72) TYPE C.

DATA:
L_S_MSG TYPE BAL_S_MSG, "Message Data
LOGNUMBER TYPE BAL_T_LGNM, "Newly-Assigned LOGNUMBER Table
WA_LOGNUMBER LIKE BAL_S_LGNM, "Newly assigned LOGNUMBER
LT_BALLOGHNDL TYPE BAL_T_LOGH. "Log handle internal table

*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.

* Define header data of this log
G_S_LOG-EXTNUMBER = 'Application Log Demo'.
G_S_LOG-OBJECT = 'BCT1'.
G_S_LOG-ALDATE = SY-DATUM.
G_S_LOG-ALTIME = SY-UZEIT.
G_S_LOG-ALUSER = SY-UNAME.
G_S_LOG-ALPROG = SY-REPID.

* Create a log
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
I_S_LOG = G_S_LOG
IMPORTING
E_LOG_HANDLE = G_LOG_HANDLE
EXCEPTIONS
LOG_HEADER_INCONSISTENT = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.

* Store log handle in global internal table for DB save later & flush
APPEND G_LOG_HANDLE TO LT_BALLOGHNDL.

MESSAGE I000(VZ) INTO G_MSG.
L_S_MSG-MSGTY = SY-MSGTY.
L_S_MSG-MSGID = SY-MSGID.
L_S_MSG-MSGNO = SY-MSGNO.
L_S_MSG-MSGV1 = SY-MSGV1.
L_S_MSG-MSGV2 = SY-MSGV2.
L_S_MSG-MSGV3 = SY-MSGV3.
L_S_MSG-MSGV4 = SY-MSGV4.
L_S_MSG-PROBCLASS = PROBCLASS_VERY_HIGH.

CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
I_S_MSG = L_S_MSG
I_LOG_HANDLE = G_LOG_HANDLE
EXCEPTIONS
LOG_NOT_FOUND = 0
OTHERS = 1.

IF SY-SUBRC <> 0.
ELSE.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
I_CLIENT = SY-MANDT
I_IN_UPDATE_TASK = ' '
I_SAVE_ALL = ' '
I_T_LOG_HANDLE = LT_BALLOGHNDL
IMPORTING
E_NEW_LOGNUMBERS = LOGNUMBER
EXCEPTIONS
LOG_NOT_FOUND = 1
SAVE_NOT_ALLOWED = 2
NUMBERING_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
ELSE.
READ TABLE LOGNUMBER INTO WA_LOGNUMBER INDEX 1.
MESSAGE I000(VZ) WITH WA_LOGNUMBER-LOGNUMBER.
ENDIF.

ENDIF.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8214011/viewspace-897041/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8214011/viewspace-897041/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值