From 5850d1e71999e516b2f4de30ddd547e42e2c5cec Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Thu, 24 Mar 2016 10:48:17 +0500 Subject: [PATCH 01/11] Set default USE_LOG4J to False (see GitHub issue #3) --- sql/install_log_user/ps_plogparam.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/install_log_user/ps_plogparam.sql b/sql/install_log_user/ps_plogparam.sql index 496db54..b9ab594 100644 --- a/sql/install_log_user/ps_plogparam.sql +++ b/sql/install_log_user/ps_plogparam.sql @@ -40,7 +40,7 @@ DEFAULT_LOG_TABLE BOOLEAN := TRUE; -- if DEFAULT_USE_LOG4J is TRUE log4j Log4JbackgroundProcess are necessary -- Causes log messages to be sent to a queue -DEFAULT_USE_LOG4J BOOLEAN := TRUE; +DEFAULT_USE_LOG4J BOOLEAN := FALSE; -- TRUE default value for Logging out off transactional limits DEFAULT_LOG_OUT_TRANS BOOLEAN := TRUE; From 81b57442d2409b8372eee12f4d105ea1923a5879 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Thu, 17 May 2018 17:20:50 +0500 Subject: [PATCH 02/11] Ignore a backup copy of files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0966871..5673167 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ jlib/ install.txt .project .settings/ +*~ \ No newline at end of file From 723b695c7905bc49dcb313cb6471c830717efac2 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Thu, 17 May 2018 17:21:30 +0500 Subject: [PATCH 03/11] Fix comment for default level --- sql/install_log_user/ps_plogparam.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/install_log_user/ps_plogparam.sql b/sql/install_log_user/ps_plogparam.sql index b9ab594..019aa28 100644 --- a/sql/install_log_user/ps_plogparam.sql +++ b/sql/install_log_user/ps_plogparam.sql @@ -33,7 +33,7 @@ PACKAGE PLOGPARAM IS -- definition of the default level -- LERROR default level for production system -- LDEBUG for developement phase -DEFAULT_LEVEL TLOG.LLEVEL%type := 70 ; -- LERROR +DEFAULT_LEVEL TLOG.LLEVEL%type := 70 ; -- LALL -- TRUE default value for Logging in table DEFAULT_LOG_TABLE BOOLEAN := TRUE; From 62e8053e987123c9af9e2f57ff3a00202d043757 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Fri, 22 Feb 2019 15:59:50 +0500 Subject: [PATCH 04/11] Ignore backups --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0966871..5673167 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ jlib/ install.txt .project .settings/ +*~ \ No newline at end of file From 628b0de6eacd4c4c923c4ae17e7d8c754dc62adb Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Fri, 22 Feb 2019 16:00:13 +0500 Subject: [PATCH 05/11] Fixup comments --- sql/install_log_user/ps_plogparam.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/install_log_user/ps_plogparam.sql b/sql/install_log_user/ps_plogparam.sql index b9ab594..019aa28 100644 --- a/sql/install_log_user/ps_plogparam.sql +++ b/sql/install_log_user/ps_plogparam.sql @@ -33,7 +33,7 @@ PACKAGE PLOGPARAM IS -- definition of the default level -- LERROR default level for production system -- LDEBUG for developement phase -DEFAULT_LEVEL TLOG.LLEVEL%type := 70 ; -- LERROR +DEFAULT_LEVEL TLOG.LLEVEL%type := 70 ; -- LALL -- TRUE default value for Logging in table DEFAULT_LOG_TABLE BOOLEAN := TRUE; From 8e9bd2ce385d1e9cdbe982f01390052339637676 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Mon, 25 Feb 2019 11:42:56 +0500 Subject: [PATCH 06/11] Ignore Vim swap files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5673167..5d70d0b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ jlib/ install.txt .project .settings/ -*~ \ No newline at end of file +*~ +.*sw[op] \ No newline at end of file From 653ee8fa1fae5cb6b3931359b72b354ec1a2ae34 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Mon, 25 Feb 2019 13:41:28 +0500 Subject: [PATCH 07/11] Added an Action field to Logging Context. Fixed V$SESSION output --- sql/install_log_user/pb_plog.sql | 70 ++++++++++++++++++++ sql/install_log_user/pb_plog_out_session.sql | 3 +- sql/install_log_user/ps_plog.sql | 23 ++++++- sql/install_log_user/ps_plogparam.sql | 1 + 4 files changed, 93 insertions(+), 4 deletions(-) diff --git a/sql/install_log_user/pb_plog.sql b/sql/install_log_user/pb_plog.sql index 7212ef9..7c72359 100644 --- a/sql/install_log_user/pb_plog.sql +++ b/sql/install_log_user/pb_plog.sql @@ -321,6 +321,7 @@ BEGIN pCTX.isDefaultInit := TRUE; pCTX.LSection := nvl(pSECTION, getCallStack); + pCTX.LAction := NULL; pCTX.INIT_LSECTION := pSECTION; pCTX.LLEVEL := pLEVEL; pCTX.INIT_LLEVEL := pLEVEL; @@ -436,6 +437,75 @@ BEGIN END setEndSection; +--****************************************************************************** +-- PROCEDURE setBeginAction +-- +-- pCTX log context +-- pAction Action node to add +-- +-- Public. Creates a new action node in the hierarchical action. +-- The text parameter pAction is added to the log context section. +-- +--****************************************************************************** +PROCEDURE setBeginAction +( + pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, + pACTION IN VARCHAR2 +) +IS +BEGIN + checkAndInitCTX(pCTX); + pCTX.LAction := nvl(pCTX.LAction, '')||PLOGPARAM.DEFAULT_Section_sep||pACTION; + +END setBeginAction; + +--****************************************************************************** +-- NAME: getAction +-- +-- Public. Returns the action of a specific log context +-- +--****************************************************************************** +FUNCTION getAction +( + pCTX IN PLOGPARAM.LOG_CTX +) +RETURN VARCHAR2 +IS +BEGIN + + RETURN pCTX.LAction; + +END getAction; + +PROCEDURE setEndAction +( + pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, + pACTION IN VARCHAR2 DEFAULT 'EndAllAction' +) +--****************************************************************************** +-- NAME: setEndAction +-- +-- PARAMETERS: +-- +-- pCTX log context +-- pAction action node to close +-- +-- Public. Closes an action node of a log context. If pAction is left NULL, +-- all nodes are closed. +-- +--****************************************************************************** +IS +BEGIN + checkAndInitCTX(pCTX); + IF pACTION = 'EndAllAction' THEN + pCTX.LAction := NULL; + RETURN; + END IF; + + pCTX.LAction := substr(pCTX.LAction,1,instr(UPPER(pCTX.LAction), UPPER(pACTION), -1)-2); + +END setEndAction; + PROCEDURE setTransactionMode ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, diff --git a/sql/install_log_user/pb_plog_out_session.sql b/sql/install_log_user/pb_plog_out_session.sql index 808db83..1d02402 100644 --- a/sql/install_log_user/pb_plog_out_session.sql +++ b/sql/install_log_user/pb_plog_out_session.sql @@ -49,8 +49,7 @@ PACKAGE BODY PLOG_OUT_SESSION AS AS BEGIN IF pCTX.USE_SESSION = TRUE THEN - dbms_application_info.set_module(pLSECTION || ' User:' || PLUSER, NULL); - dbms_application_info.set_action(PLOGPARAM.getLevelInText(pLLEVEL) || ' ' || to_char(pLDATE, 'DD.MM.YYYY HH24:MI:SS') || '-' || pLINSTANCE); + dbms_application_info.set_module(pLSECTION, pCTX.LAction); dbms_application_info.set_client_info(pLTEXT); END IF; diff --git a/sql/install_log_user/ps_plog.sql b/sql/install_log_user/ps_plog.sql index f47f8d8..5fe953d 100644 --- a/sql/install_log_user/ps_plog.sql +++ b/sql/install_log_user/ps_plog.sql @@ -534,7 +534,7 @@ RETURN PLOGPARAM.LOG_CTX; PROCEDURE setBeginSection ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pSECTION IN TLOG.LSECTION%TYPE + pSECTION IN TLOG.LSECTION%TYPE ); @@ -549,7 +549,26 @@ FUNCTION getSection RETURN TLOG.LSECTION%TYPE; PROCEDURE setEndSection ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pSECTION IN TLOG.LSECTION%TYPE DEFAULT 'EndAllSection' + pSECTION IN TLOG.LSECTION%TYPE DEFAULT 'EndAllSection' +); + +PROCEDURE setBeginAction +( + pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, + pACTION IN VARCHAR2 +); + + +FUNCTION getAction +( + pCTX IN PLOGPARAM.LOG_CTX +) +RETURN VARCHAR2; + +PROCEDURE setEndAction +( + pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, + pACTION IN VARCHAR2 DEFAULT 'EndAllAction' ); PROCEDURE setLevel diff --git a/sql/install_log_user/ps_plogparam.sql b/sql/install_log_user/ps_plogparam.sql index 019aa28..09f37c6 100644 --- a/sql/install_log_user/ps_plogparam.sql +++ b/sql/install_log_user/ps_plogparam.sql @@ -90,6 +90,7 @@ TYPE LOG_CTX IS RECORD ( isDefaultInit BOOLEAN default FALSE, LLEVEL TLOG.LLEVEL%TYPE, LSECTION TLOG.LSECTION%TYPE, + LACTION VARCHAR2(2000 BYTE), -- TODO: May be it should be added to TLOG LTEXT TLOG.LTEXT%TYPE, LSID TLOG.LSID%TYPE, USE_LOG4J BOOLEAN, From 1427a3d349d116417c0ad488c44784eb23555c94 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Fri, 1 Mar 2019 12:25:00 +0500 Subject: [PATCH 08/11] User defined global system context to keep logging parameters --- sql/install_log_user/pb_plog.sql | 187 +++++++++++++++--- sql/install_log_user/ps_plog.sql | 39 +++- sql/install_sys/grant_before_installation.sql | 6 + 3 files changed, 199 insertions(+), 33 deletions(-) diff --git a/sql/install_log_user/pb_plog.sql b/sql/install_log_user/pb_plog.sql index 7c72359..1e8d675 100644 --- a/sql/install_log_user/pb_plog.sql +++ b/sql/install_log_user/pb_plog.sql @@ -303,35 +303,35 @@ end; --****************************************************************************** FUNCTION init ( - pSECTION IN TLOG.LSECTION%TYPE DEFAULT NULL , - pLEVEL IN TLOG.LLEVEL%TYPE DEFAULT PLOGPARAM.DEFAULT_LEVEL, - pLOG4J IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_USE_LOG4J, - pLOGTABLE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TABLE, - pOUT_TRANS IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_OUT_TRANS, - pALERT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_ALERT, - pTRACE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TRACE, - pDBMS_OUTPUT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT, - pSESSION IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_SESSION, - pDBMS_OUTPUT_WRAP IN PLS_INTEGER DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT_LINE_WRAP + pSECTION IN TLOG.LSECTION%TYPE DEFAULT NULL , + pLEVEL IN TLOG.LLEVEL%TYPE DEFAULT PLOGPARAM.DEFAULT_LEVEL, + pLOG4J IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_USE_LOG4J, + pLOGTABLE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TABLE, + pOUT_TRANS IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_OUT_TRANS, + pALERT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_ALERT, + pTRACE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TRACE, + pDBMS_OUTPUT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT, + pSESSION IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_SESSION, + pDBMS_OUTPUT_WRAP IN PLS_INTEGER DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT_LINE_WRAP ) RETURN PLOGPARAM.LOG_CTX IS pCTX PLOGPARAM.LOG_CTX; BEGIN - pCTX.isDefaultInit := TRUE; - pCTX.LSection := nvl(pSECTION, getCallStack); - pCTX.LAction := NULL; - pCTX.INIT_LSECTION := pSECTION; - pCTX.LLEVEL := pLEVEL; - pCTX.INIT_LLEVEL := pLEVEL; - pCTX.USE_LOG4J := pLOG4J; - pCTX.USE_OUT_TRANS := pOUT_TRANS; - pCTX.USE_LOGTABLE := pLOGTABLE; - pCTX.USE_ALERT := pALERT; - pCTX.USE_TRACE := pTRACE; - pCTX.USE_DBMS_OUTPUT := pDBMS_OUTPUT; - pCTX.USE_SESSION := pSESSION; + pCTX.isDefaultInit := TRUE; + pCTX.LSection := nvl(pSECTION, getCallStack); + pCTX.LAction := NULL; + pCTX.INIT_LSECTION := pSECTION; + pCTX.LLEVEL := pLEVEL; + pCTX.INIT_LLEVEL := pLEVEL; + pCTX.USE_LOG4J := pLOG4J; + pCTX.USE_OUT_TRANS := pOUT_TRANS; + pCTX.USE_LOGTABLE := pLOGTABLE; + pCTX.USE_ALERT := pALERT; + pCTX.USE_TRACE := pTRACE; + pCTX.USE_DBMS_OUTPUT := pDBMS_OUTPUT; + pCTX.USE_SESSION := pSESSION; pCTX.DBMS_OUTPUT_WRAP := pDBMS_OUTPUT_WRAP; begin @@ -345,6 +345,98 @@ BEGIN END init; +--****************************************************************************** +-- FUNCTION init +-- +-- pCONTEXT name of users' default global logging context +-- pSECTION log section +-- +-- Public. Initializes a context with special values from users' global +-- logging context. +-- +--****************************************************************************** +FUNCTION init +( + pCONTEXT IN VARCHAR2, + pSECTION IN TLOG.LSECTION%TYPE +) +RETURN PLOGPARAM.LOG_CTX +IS + pCTX PLOGPARAM.LOG_CTX; + pVAL INTEGER; +BEGIN + pCTX := init( pSECTION ); + + + -- FIXME: It doesn't working dbms_session.list_context( lCTX_INFO, lCTX_CNT ); + + select nvl(sys_context( pCONTEXT,'SECTION'), pCTX.LSection) into pCTX.LSection from dual; + select nvl(sys_context( pCONTEXT,'INIT_SECTION'), pCTX.INIT_LSECTION) into pCTX.INIT_LSECTION from dual; + select nvl(sys_context( pCONTEXT,'ACTION'), pCTX.LAction) into pCTX.LAction from dual; + select nvl(to_number(sys_context( pCONTEXT,'LEVEL')), pCTX.LLEVEL) into pCTX.LLEVEL from dual; + select nvl(to_number(sys_context( pCONTEXT,'INIT_LEVEL')), pCTX.INIT_LLEVEL) into pCTX.INIT_LLEVEL from dual; + select nvl(to_number(sys_context( pCONTEXT,'DBMS_OUTPUT_WRAP')), pCTX.DBMS_OUTPUT_WRAP) into pCTX.DBMS_OUTPUT_WRAP from dual; + + select to_number(sys_context( pCONTEXT,'USE_LOG4J' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_LOG4J := false; + else pCTX.USE_LOG4J := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_OUT_TRANS' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_OUT_TRANS := false; + else pCTX.USE_OUT_TRANS := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_LOGTABLE' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_LOGTABLE := false; + else pCTX.USE_LOGTABLE := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_ALERT' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_ALERT := false; + else pCTX.USE_ALERT := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_TRACE' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_TRACE := false; + else pCTX.USE_TRACE := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_DBMS_OUTPUT' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_DBMS_OUTPUT := false; + else pCTX.USE_DBMS_OUTPUT := true; + end if; + end if; + + select to_number(sys_context( pCONTEXT,'USE_SESSION' )) into pVAL from dual; + if pVAL is NOT NULL then + if pVAL = 0 + then pCTX.USE_SESSION := false; + else pCTX.USE_SESSION := true; + end if; + end if; + + RETURN pCTX; + +END init; + --****************************************************************************** -- PROCEDURE setBeginSection -- @@ -3351,6 +3443,55 @@ BEGIN log(pLEVEL => PLOGPARAM.DEFAULT_FT_ERR_BTRACE_LEVEL, pCTX => pCTX, pTEXT => LLTEXT ); END full_error_backtrace; +PROCEDURE createGlobalContext( + pCONTEXT IN VARCHAR2 +) +--****************************************************************************** +-- NAME: createGlobalContext +-- +-- PARAMETERS: +-- +-- pCONTEXT name of global system context +-- +-- Public. Create global system context to keep default logging parametes. +--****************************************************************************** +IS +BEGIN + execute immediate 'create context ' || pCONTEXT || ' using PLOG accessed globally'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE = -955 THEN + NULL; + ELSE + RAISE; + END IF; +END createGlobalContext; + +PROCEDURE setContextParameter +( + pCONTEXT IN VARCHAR2, + pPARAMETER IN VARCHAR2, + pVALUE IN VARCHAR2 +) +--****************************************************************************** +-- NAME: setContextParameter +-- +-- PARAMETERS: +-- +-- pCONTEXT name of global system context +-- pPARAMETER name of parameter: +-- ACTION, LEVEL, SECTION, USE_LOG4J, USE_OUT_TRANS, +-- USE_LOGTABLE, USE_ALERT, USE_TRACE, USE_DBMS_OUTPUT, +-- USE_SESSION, DBMS_OUTPUT_WRAP +-- pVALUE value of parameter +-- +-- Public. Set parameter in global system context +--****************************************************************************** +IS +BEGIN + DBMS_SESSION.Set_Context( pCONTEXT, upper(pPARAMETER), to_char(pVALUE) ); +END setContextParameter; + -- end of the package END; / diff --git a/sql/install_log_user/ps_plog.sql b/sql/install_log_user/ps_plog.sql index 5fe953d..f9bf67f 100644 --- a/sql/install_log_user/ps_plog.sql +++ b/sql/install_log_user/ps_plog.sql @@ -518,16 +518,23 @@ PROCEDURE fatal FUNCTION init ( - pSECTION IN TLOG.LSECTION%TYPE DEFAULT NULL , - pLEVEL IN TLOG.LLEVEL%TYPE DEFAULT PLOGPARAM.DEFAULT_LEVEL, - pLOG4J IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_USE_LOG4J, - pLOGTABLE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TABLE, - pOUT_TRANS IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_OUT_TRANS, - pALERT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_ALERT, - pTRACE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TRACE, - pDBMS_OUTPUT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT, - pSESSION IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_SESSION, - pDBMS_OUTPUT_WRAP IN PLS_INTEGER DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT_LINE_WRAP + pSECTION IN TLOG.LSECTION%TYPE DEFAULT NULL, + pLEVEL IN TLOG.LLEVEL%TYPE DEFAULT PLOGPARAM.DEFAULT_LEVEL, + pLOG4J IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_USE_LOG4J, + pLOGTABLE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TABLE, + pOUT_TRANS IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_OUT_TRANS, + pALERT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_ALERT, + pTRACE IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_LOG_TRACE, + pDBMS_OUTPUT IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT, + pSESSION IN BOOLEAN DEFAULT PLOGPARAM.DEFAULT_SESSION, + pDBMS_OUTPUT_WRAP IN PLS_INTEGER DEFAULT PLOGPARAM.DEFAULT_DBMS_OUTPUT_LINE_WRAP +) +RETURN PLOGPARAM.LOG_CTX; + +FUNCTION init +( + pCONTEXT IN VARCHAR2, + pSECTION IN TLOG.LSECTION%TYPE ) RETURN PLOGPARAM.LOG_CTX; @@ -822,5 +829,17 @@ FUNCTION formatMessage ) return VARCHAR2; +PROCEDURE createGlobalContext +( + pCONTEXT IN VARCHAR2 +); + +PROCEDURE setContextParameter +( + pCONTEXT IN VARCHAR2, + pPARAMETER IN VARCHAR2, + pVALUE IN VARCHAR2 +); + END; / diff --git a/sql/install_sys/grant_before_installation.sql b/sql/install_sys/grant_before_installation.sql index af6a469..6a077f4 100644 --- a/sql/install_sys/grant_before_installation.sql +++ b/sql/install_sys/grant_before_installation.sql @@ -31,6 +31,9 @@ GRANT SELECT ON SYS.V_$MYSTAT to &V_USER; -- grant needed to write log messages in alert.log or trace files GRANT EXECUTE ON DBMS_SYSTEM TO &V_USER; +-- grant needed to write log messages into v$SESSION +GRANT EXECUTE ON DBMS_SSESSION TO &V_USER; + -- following grant needed for the optional output -- in advanded queue (AQ) consumed by the log4j background process GRANT EXECUTE ON DBMS_AQ TO &V_USER; @@ -38,5 +41,8 @@ GRANT EXECUTE ON DBMS_AQADM TO &V_USER; GRANT EXECUTE ON DBMS_AQIN TO &V_USER; GRANT EXECUTE ON DBMS_AQJMS TO &V_USER; +-- store default logging parameters in system global context +GRANT CREATE ANY CONTEXT TO &V_USER; set verify on + From 3866c4bb20d095f42abdd53e25fc21c3eee99797 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Mon, 4 Mar 2019 18:30:01 +0500 Subject: [PATCH 09/11] Back default text in ACTION --- sql/install_log_user/pb_plog_out_session.sql | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sql/install_log_user/pb_plog_out_session.sql b/sql/install_log_user/pb_plog_out_session.sql index 1d02402..0fdc3ec 100644 --- a/sql/install_log_user/pb_plog_out_session.sql +++ b/sql/install_log_user/pb_plog_out_session.sql @@ -47,11 +47,16 @@ PACKAGE BODY PLOG_OUT_SESSION AS --******************************************************************************* AS + lAction BEGIN - IF pCTX.USE_SESSION = TRUE THEN - dbms_application_info.set_module(pLSECTION, pCTX.LAction); + IF pCTX.USE_SESSION = TRUE THEN + IF pCTX.LAction IS NULL THEN + lAction := PLOGPARAM.getLevelInText(pLLEVEL) || ' ' || to_char(pLDATE, 'DD.MM.YYYY HH24:MI:SS') || '-' || pLINSTANCE; + ELSE + lAction := pCTX.LAction; + END IF; + dbms_application_info.set_module(pLSECTION, lAction); dbms_application_info.set_client_info(pLTEXT); - END IF; END log; From 0d2b035df87340194747631eec6a9167aa9d119d Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Tue, 5 Mar 2019 15:44:18 +0500 Subject: [PATCH 10/11] Add support for Action field --- sql/install_log_user/create_table_tlog.sql | 19 +++++++++++-------- sql/install_log_user/pb_plog.sql | 4 ++-- sql/install_log_user/pb_plog_out_session.sql | 2 +- sql/install_log_user/ps_plog.sql | 4 ++-- sql/install_log_user/ps_plogparam.sql | 2 +- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/sql/install_log_user/create_table_tlog.sql b/sql/install_log_user/create_table_tlog.sql index bfee167..863e435 100644 --- a/sql/install_log_user/create_table_tlog.sql +++ b/sql/install_log_user/create_table_tlog.sql @@ -27,15 +27,16 @@ declare l$sql varchar2(1024) := ' CREATE TABLE TLOG ( - ID NUMBER, - LDATE TIMESTAMP DEFAULT SYSTIMESTAMP, - LHSECS NUMBER(38), - LLEVEL NUMBER(38), - LSECTION VARCHAR2(2000 BYTE), - LTEXT VARCHAR2(4000 BYTE), - LUSER VARCHAR2(30 BYTE), + ID NUMBER, + LDATE TIMESTAMP DEFAULT SYSTIMESTAMP, + LHSECS NUMBER(38), + LLEVEL NUMBER(38), + LSECTION VARCHAR2(2000 BYTE), + LACTION VARCHAR2(4000 BYTE), + LTEXT VARCHAR2(4000 BYTE), + LUSER VARCHAR2(30 BYTE), LINSTANCE NUMBER(38) DEFAULT SYS_CONTEXT(''USERENV'', ''INSTANCE''), - LSID NUMBER, + LSID NUMBER, LXML SYS.XMLTYPE DEFAULT NULL, CONSTRAINT PK_STG PRIMARY KEY (ID)) '; @@ -80,6 +81,8 @@ COMMENT ON COLUMN TLOG.LLEVEL IS 'Log level as numeric value'; COMMENT ON COLUMN TLOG.LSECTION IS 'Formated call stack'; +COMMENT ON COLUMN TLOG.LACTION IS 'Defined action'; + COMMENT ON COLUMN TLOG.LUSER IS 'Database user (SYSUSER)'; COMMENT ON COLUMN TLOG.LINSTANCE IS 'The instance identification number of the current instance'; diff --git a/sql/install_log_user/pb_plog.sql b/sql/install_log_user/pb_plog.sql index 1e8d675..1151a28 100644 --- a/sql/install_log_user/pb_plog.sql +++ b/sql/install_log_user/pb_plog.sql @@ -542,7 +542,7 @@ END setEndSection; PROCEDURE setBeginAction ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pACTION IN VARCHAR2 + pACTION IN TLOG.LACTION%TYPE ) IS BEGIN @@ -572,7 +572,7 @@ END getAction; PROCEDURE setEndAction ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pACTION IN VARCHAR2 DEFAULT 'EndAllAction' + pACTION IN TLOG.LACTION%TYPE DEFAULT 'EndAllAction' ) --****************************************************************************** -- NAME: setEndAction diff --git a/sql/install_log_user/pb_plog_out_session.sql b/sql/install_log_user/pb_plog_out_session.sql index 0fdc3ec..7bd4fe4 100644 --- a/sql/install_log_user/pb_plog_out_session.sql +++ b/sql/install_log_user/pb_plog_out_session.sql @@ -47,7 +47,7 @@ PACKAGE BODY PLOG_OUT_SESSION AS --******************************************************************************* AS - lAction + lAction TLOG.LACTION%TYPE; BEGIN IF pCTX.USE_SESSION = TRUE THEN IF pCTX.LAction IS NULL THEN diff --git a/sql/install_log_user/ps_plog.sql b/sql/install_log_user/ps_plog.sql index f9bf67f..d80271a 100644 --- a/sql/install_log_user/ps_plog.sql +++ b/sql/install_log_user/ps_plog.sql @@ -562,7 +562,7 @@ PROCEDURE setEndSection PROCEDURE setBeginAction ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pACTION IN VARCHAR2 + pACTION IN TLOG.LACTION%TYPE ); @@ -575,7 +575,7 @@ RETURN VARCHAR2; PROCEDURE setEndAction ( pCTX IN OUT NOCOPY PLOGPARAM.LOG_CTX, - pACTION IN VARCHAR2 DEFAULT 'EndAllAction' + pACTION IN TLOG.LACTION%TYPE DEFAULT 'EndAllAction' ); PROCEDURE setLevel diff --git a/sql/install_log_user/ps_plogparam.sql b/sql/install_log_user/ps_plogparam.sql index 09f37c6..3947951 100644 --- a/sql/install_log_user/ps_plogparam.sql +++ b/sql/install_log_user/ps_plogparam.sql @@ -90,7 +90,7 @@ TYPE LOG_CTX IS RECORD ( isDefaultInit BOOLEAN default FALSE, LLEVEL TLOG.LLEVEL%TYPE, LSECTION TLOG.LSECTION%TYPE, - LACTION VARCHAR2(2000 BYTE), -- TODO: May be it should be added to TLOG + LACTION TLOG.LACTION%TYPE, LTEXT TLOG.LTEXT%TYPE, LSID TLOG.LSID%TYPE, USE_LOG4J BOOLEAN, From 5b56be0765338705886faa2d996ce7d366855091 Mon Sep 17 00:00:00 2001 From: Sergey Kryazhevskikh Date: Mon, 17 Jun 2019 10:53:07 +0500 Subject: [PATCH 11/11] Added 'Action' field to trace actions inside procedures/functions. --- sql/install_log_user/pb_plog_out_tlog.sql | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sql/install_log_user/pb_plog_out_tlog.sql b/sql/install_log_user/pb_plog_out_tlog.sql index ce99782..b644c8d 100644 --- a/sql/install_log_user/pb_plog_out_tlog.sql +++ b/sql/install_log_user/pb_plog_out_tlog.sql @@ -18,6 +18,7 @@ PROCEDURE addRow pLHSECS IN TLOG.lhsecs%TYPE , pLLEVEL IN TLOG.llevel%TYPE , pLSECTION IN TLOG.lsection%TYPE , + pLACTION IN TLOG.laction%TYPE , pLUSER IN TLOG.luser%TYPE , pLTEXT IN TLOG.LTEXT%TYPE , pLINSTANCE IN TLOG.LINSTANCE%TYPE DEFAULT SYS_CONTEXT('USERENV', 'INSTANCE'), @@ -51,6 +52,7 @@ BEGIN LHSECS , LLEVEL , LSECTION , + LACTION , LUSER , LTEXT , LINSTANCE , @@ -62,6 +64,7 @@ BEGIN pLHSECS, pLLEVEL, pLSECTION, + pLACTION, pLUSER, pLTEXT, pLINSTANCE, @@ -78,6 +81,7 @@ PROCEDURE addRowAutonomous pLHSECS IN TLOG.lhsecs%TYPE , pLLEVEL IN TLOG.llevel%TYPE , pLSECTION IN TLOG.lsection%TYPE , + pLACTION IN TLOG.laction%TYPE , pLUSER IN TLOG.luser%TYPE , pLTEXT IN TLOG.LTEXT%TYPE , pLINSTANCE IN TLOG.LINSTANCE%TYPE DEFAULT SYS_CONTEXT('USERENV', 'INSTANCE'), @@ -114,6 +118,7 @@ BEGIN pLHSECS => pLHSECS, pLLEVEL => pLLEVEL, pLSECTION => pLSECTION, + pLACTION => pLACTION, pLUSER => pLUSER, pLTEXT => pLTEXT, pLINSTANCE => pLINSTANCE, @@ -173,6 +178,7 @@ BEGIN pLHSECS => pLHSECS, pLLEVEL => pLLEVEL, pLSECTION => pLSECTION, + pLACTION => pCTX.LACTION, pLUSER => pLUSER, pLTEXT => pLTEXT, pLINSTANCE => pLINSTANCE, @@ -185,6 +191,7 @@ BEGIN pLHSECS => pLHSECS, pLLEVEL => pLLEVEL, pLSECTION => pLSECTION, + pLACTION => pCTX.LACTION, pLUSER => pLUSER, pLTEXT => pLTEXT, pLINSTANCE => pLINSTANCE,