Log - Script Package
E Möglichkeit es eigenigs Logging z'mache
[Script 1.0]
script package RBSC$LOG
-------------------------------------------------------------------------------------------------------------
-- DESCRIPTION
-- Script package containing the RBSC implementation of logging functions.
-- These functions are common for formatting log messages.
--
-- Usage:
-- 1. Declare a constant variable at the top of the source where you would like
-- to debug containing the name of the source (without file extension) and
-- in lower case. This will become the LOGGER in the config.
-- c_pkg_name constant text := 'full_source_name'
-- 2. Call the logging function:
-- rbsc$log.debug(c_pkg_name, <msg>[, <param_name>, <param_value>]*);
-- where:
-- <mag> -> is a string, DO NOT concatenate strings here as it is bad for
-- performance. If you need to display variables, use parameters.
-- You can have up to 20 <param> value pairs as described below.
-- <param_name> -> the name of the value you want to display
-- <param_value> -> the value matching the parameter name
--
-- Examples:
-- rbsc$log.debug(c_pkg_name, 'Generating message');
-- rbsc$log.debug(c_pkg_name, 'Generating message', 'MSG_TYPE', msg.msg_type);
--
is
-----------------------------------------------------------------------------
-- IMPORTS
-----------------------------------------------------------------------------
import util;
import rbsc$tab;
import native rbsc$log#;
---------------------------------------------------------------------------
-- CONSTANTS
---------------------------------------------------------------------------
c_log_level_error constant number := rbsc$log#.c_log_level_error;
c_log_level_warn constant number := rbsc$log#.c_log_level_warn;
c_log_level_info constant number := rbsc$log#.c_log_level_info;
c_log_level_debug constant number := rbsc$log#.c_log_level_debug;
---------------------------------------------------------------------------
-- PROCEDURES/FUNCTIONS
---------------------------------------------------------------------------
function logger#is_enbl(i_logger text, i_log_level number) return boolean is
begin
return rbsc$log#.logger#is_enbl(
i_logger => i_logger
,i_log_level => i_log_level
);
end logger#is_enbl;
---------------------------------------------------------------------------
-- Main logging function
private procedure doLog(
i_level_id number
,i_logger text
,i_msg text
,i_par1_name text := null
,i_par1_val text := null
,i_par2_name text := null
,i_par2_val text := null
,i_par3_name text := null
,i_par3_val text := null
,i_par4_name text := null
,i_par4_val text := null
,i_par5_name text := null
,i_par5_val text := null
,i_par6_name text := null
,i_par6_val text := null
,i_par7_name text := null
,i_par7_val text := null
,i_par8_name text := null
,i_par8_val text := null
,i_par9_name text := null
,i_par9_val text := null
,i_par10_name text := null
,i_par10_val text := null
,i_par11_name text := null
,i_par11_val text := null
,i_par12_name text := null
,i_par12_val text := null
,i_par13_name text := null
,i_par13_val text := null
,i_par14_name text := null
,i_par14_val text := null
,i_par15_name text := null
,i_par15_val text := null
,i_par16_name text := null
,i_par16_val text := null
,i_par17_name text := null
,i_par17_val text := null
,i_par18_name text := null
,i_par18_val text := null
,i_par19_name text := null
,i_par19_val text := null
,i_par20_name text := null
,i_par20_val text := null
) is
l_log_level text;
l_msg text;
l_par_list text;
function par#fmt(
i_name text
,i_val text
) return text
is
begin
if i_name is not null then
return rpad(i_name, 40, '.') || iff(i_val is not null, i_val, '[NULL]') || util.rtn;
else
return null;
end if;
end par#fmt;
function par#msg_fmt(
i_name text
,i_val text
) return text
is
begin
if i_name is not null then
return ' {' || i_name || ':' || iff(i_val is not null, i_val, '[NULL]') || '}';
else
return null;
end if;
end par#msg_fmt;
begin
case i_level_id
when c_log_level_debug then
l_log_level := 'DEBUG';
when c_log_level_info then
l_log_level := 'INFO';
when c_log_level_warn then
l_log_level := 'WARNING';
when c_log_level_error then
l_log_level := 'ERROR';
else
l_log_level := '???';
end case;
l_msg := i_msg ||
par#msg_fmt(i_par1_name, i_par1_val) ||
par#msg_fmt(i_par2_name, i_par2_val) ||
par#msg_fmt(i_par3_name, i_par3_val) ||
par#msg_fmt(i_par4_name, i_par4_val) ||
par#msg_fmt(i_par5_name, i_par5_val) ||
iff(i_par6_name is not null, '{See more parameters in details}', '');
l_par_list := i_logger || ' - ' || l_log_level || util.rtn ||
par#fmt(i_par1_name, i_par1_val) ||
par#fmt(i_par2_name, i_par2_val) ||
par#fmt(i_par3_name, i_par3_val) ||
par#fmt(i_par4_name, i_par4_val) ||
par#fmt(i_par5_name, i_par5_val) ||
par#fmt(i_par6_name, i_par6_val) ||
par#fmt(i_par7_name, i_par7_val) ||
par#fmt(i_par8_name, i_par8_val) ||
par#fmt(i_par9_name, i_par9_val) ||
par#fmt(i_par10_name, i_par10_val) ||
par#fmt(i_par11_name, i_par11_val) ||
par#fmt(i_par12_name, i_par12_val) ||
par#fmt(i_par13_name, i_par13_val) ||
par#fmt(i_par14_name, i_par14_val) ||
par#fmt(i_par15_name, i_par15_val) ||
par#fmt(i_par16_name, i_par16_val) ||
par#fmt(i_par17_name, i_par17_val) ||
par#fmt(i_par18_name, i_par18_val) ||
par#fmt(i_par19_name, i_par19_val) ||
par#fmt(i_par20_name, i_par20_val)
;
case i_level_id
when c_log_level_info then
session.log_mgr.info(l_msg, l_par_list);
when c_log_level_warn then
session.log_mgr.warn(l_msg, l_par_list);
when c_log_level_error then
session.log_mgr.alert(l_msg, l_par_list);
else
session.log_mgr.debug(l_msg, l_par_list);
end case;
end doLog;
---------------------------------------------------------------------------
-- Entry point for a debug log
---------------------------------------------------------------------------
procedure debug(
i_logger text
,i_msg text
,i_par1_name text := null
,i_par1_val text := null
,i_par2_name text := null
,i_par2_val text := null
,i_par3_name text := null
,i_par3_val text := null
,i_par4_name text := null
,i_par4_val text := null
,i_par5_name text := null
,i_par5_val text := null
,i_par6_name text := null
,i_par6_val text := null
,i_par7_name text := null
,i_par7_val text := null
,i_par8_name text := null
,i_par8_val text := null
,i_par9_name text := null
,i_par9_val text := null
,i_par10_name text := null
,i_par10_val text := null
,i_par11_name text := null
,i_par11_val text := null
,i_par12_name text := null
,i_par12_val text := null
,i_par13_name text := null
,i_par13_val text := null
,i_par14_name text := null
,i_par14_val text := null
,i_par15_name text := null
,i_par15_val text := null
,i_par16_name text := null
,i_par16_val text := null
,i_par17_name text := null
,i_par17_val text := null
,i_par18_name text := null
,i_par18_val text := null
,i_par19_name text := null
,i_par19_val text := null
,i_par20_name text := null
,i_par20_val text := null
) is
begin
if logger#is_enbl(i_logger, c_log_level_debug) then
doLog(
i_level_id => c_log_level_debug
,i_logger => i_logger
,i_msg => i_msg
,i_par1_name => i_par1_name
,i_par1_val => i_par1_val
,i_par2_name => i_par2_name
,i_par2_val => i_par2_val
,i_par3_name => i_par3_name
,i_par3_val => i_par3_val
,i_par4_name => i_par4_name
,i_par4_val => i_par4_val
,i_par5_name => i_par5_name
,i_par5_val => i_par5_val
,i_par6_name => i_par6_name
,i_par6_val => i_par6_val
,i_par7_name => i_par7_name
,i_par7_val => i_par7_val
,i_par8_name => i_par8_name
,i_par8_val => i_par8_val
,i_par9_name => i_par9_name
,i_par9_val => i_par9_val
,i_par10_name => i_par10_name
,i_par10_val => i_par10_val
,i_par11_name => i_par11_name
,i_par11_val => i_par11_val
,i_par12_name => i_par12_name
,i_par12_val => i_par12_val
,i_par13_name => i_par13_name
,i_par13_val => i_par13_val
,i_par14_name => i_par14_name
,i_par14_val => i_par14_val
,i_par15_name => i_par15_name
,i_par15_val => i_par15_val
,i_par16_name => i_par16_name
,i_par16_val => i_par16_val
,i_par17_name => i_par17_name
,i_par17_val => i_par17_val
,i_par18_name => i_par18_name
,i_par18_val => i_par18_val
,i_par19_name => i_par19_name
,i_par19_val => i_par19_val
,i_par20_name => i_par20_name
,i_par20_val => i_par20_val
);
end if;
end debug;
---------------------------------------------------------------------------
-- Entry point for an info log
---------------------------------------------------------------------------
procedure info(
i_logger text
,i_msg text
,i_par1_name text := null
,i_par1_val text := null
,i_par2_name text := null
,i_par2_val text := null
,i_par3_name text := null
,i_par3_val text := null
,i_par4_name text := null
,i_par4_val text := null
,i_par5_name text := null
,i_par5_val text := null
,i_par6_name text := null
,i_par6_val text := null
,i_par7_name text := null
,i_par7_val text := null
,i_par8_name text := null
,i_par8_val text := null
,i_par9_name text := null
,i_par9_val text := null
,i_par10_name text := null
,i_par10_val text := null
,i_par11_name text := null
,i_par11_val text := null
,i_par12_name text := null
,i_par12_val text := null
,i_par13_name text := null
,i_par13_val text := null
,i_par14_name text := null
,i_par14_val text := null
,i_par15_name text := null
,i_par15_val text := null
,i_par16_name text := null
,i_par16_val text := null
,i_par17_name text := null
,i_par17_val text := null
,i_par18_name text := null
,i_par18_val text := null
,i_par19_name text := null
,i_par19_val text := null
,i_par20_name text := null
,i_par20_val text := null
) is
begin
if logger#is_enbl(i_logger, c_log_level_info) then
doLog(
i_level_id => c_log_level_info
,i_logger => i_logger
,i_msg => i_msg
,i_par1_name => i_par1_name
,i_par1_val => i_par1_val
,i_par2_name => i_par2_name
,i_par2_val => i_par2_val
,i_par3_name => i_par3_name
,i_par3_val => i_par3_val
,i_par4_name => i_par4_name
,i_par4_val => i_par4_val
,i_par5_name => i_par5_name
,i_par5_val => i_par5_val
,i_par6_name => i_par6_name
,i_par6_val => i_par6_val
,i_par7_name => i_par7_name
,i_par7_val => i_par7_val
,i_par8_name => i_par8_name
,i_par8_val => i_par8_val
,i_par9_name => i_par9_name
,i_par9_val => i_par9_val
,i_par10_name => i_par10_name
,i_par10_val => i_par10_val
,i_par11_name => i_par11_name
,i_par11_val => i_par11_val
,i_par12_name => i_par12_name
,i_par12_val => i_par12_val
,i_par13_name => i_par13_name
,i_par13_val => i_par13_val
,i_par14_name => i_par14_name
,i_par14_val => i_par14_val
,i_par15_name => i_par15_name
,i_par15_val => i_par15_val
,i_par16_name => i_par16_name
,i_par16_val => i_par16_val
,i_par17_name => i_par17_name
,i_par17_val => i_par17_val
,i_par18_name => i_par18_name
,i_par18_val => i_par18_val
,i_par19_name => i_par19_name
,i_par19_val => i_par19_val
,i_par20_name => i_par20_name
,i_par20_val => i_par20_val
);
end if;
end info;
---------------------------------------------------------------------------
-- Main entry point for a warning log
---------------------------------------------------------------------------
procedure warn(
i_logger text
,i_msg text
,i_par1_name text := null
,i_par1_val text := null
,i_par2_name text := null
,i_par2_val text := null
,i_par3_name text := null
,i_par3_val text := null
,i_par4_name text := null
,i_par4_val text := null
,i_par5_name text := null
,i_par5_val text := null
,i_par6_name text := null
,i_par6_val text := null
,i_par7_name text := null
,i_par7_val text := null
,i_par8_name text := null
,i_par8_val text := null
,i_par9_name text := null
,i_par9_val text := null
,i_par10_name text := null
,i_par10_val text := null
,i_par11_name text := null
,i_par11_val text := null
,i_par12_name text := null
,i_par12_val text := null
,i_par13_name text := null
,i_par13_val text := null
,i_par14_name text := null
,i_par14_val text := null
,i_par15_name text := null
,i_par15_val text := null
,i_par16_name text := null
,i_par16_val text := null
,i_par17_name text := null
,i_par17_val text := null
,i_par18_name text := null
,i_par18_val text := null
,i_par19_name text := null
,i_par19_val text := null
,i_par20_name text := null
,i_par20_val text := null
) is
begin
if logger#is_enbl(i_logger, c_log_level_warn) then
doLog(
i_level_id => c_log_level_warn
,i_logger => i_logger
,i_msg => i_msg
,i_par1_name => i_par1_name
,i_par1_val => i_par1_val
,i_par2_name => i_par2_name
,i_par2_val => i_par2_val
,i_par3_name => i_par3_name
,i_par3_val => i_par3_val
,i_par4_name => i_par4_name
,i_par4_val => i_par4_val
,i_par5_name => i_par5_name
,i_par5_val => i_par5_val
,i_par6_name => i_par6_name
,i_par6_val => i_par6_val
,i_par7_name => i_par7_name
,i_par7_val => i_par7_val
,i_par8_name => i_par8_name
,i_par8_val => i_par8_val
,i_par9_name => i_par9_name
,i_par9_val => i_par9_val
,i_par10_name => i_par10_name
,i_par10_val => i_par10_val
,i_par11_name => i_par11_name
,i_par11_val => i_par11_val
,i_par12_name => i_par12_name
,i_par12_val => i_par12_val
,i_par13_name => i_par13_name
,i_par13_val => i_par13_val
,i_par14_name => i_par14_name
,i_par14_val => i_par14_val
,i_par15_name => i_par15_name
,i_par15_val => i_par15_val
,i_par16_name => i_par16_name
,i_par16_val => i_par16_val
,i_par17_name => i_par17_name
,i_par17_val => i_par17_val
,i_par18_name => i_par18_name
,i_par18_val => i_par18_val
,i_par19_name => i_par19_name
,i_par19_val => i_par19_val
,i_par20_name => i_par20_name
,i_par20_val => i_par20_val
);
end if;
end warn;
---------------------------------------------------------------------------
-- Main entry point for an error log
---------------------------------------------------------------------------
procedure error(
i_logger text
,i_msg text
,i_par1_name text := null
,i_par1_val text := null
,i_par2_name text := null
,i_par2_val text := null
,i_par3_name text := null
,i_par3_val text := null
,i_par4_name text := null
,i_par4_val text := null
,i_par5_name text := null
,i_par5_val text := null
,i_par6_name text := null
,i_par6_val text := null
,i_par7_name text := null
,i_par7_val text := null
,i_par8_name text := null
,i_par8_val text := null
,i_par9_name text := null
,i_par9_val text := null
,i_par10_name text := null
,i_par10_val text := null
,i_par11_name text := null
,i_par11_val text := null
,i_par12_name text := null
,i_par12_val text := null
,i_par13_name text := null
,i_par13_val text := null
,i_par14_name text := null
,i_par14_val text := null
,i_par15_name text := null
,i_par15_val text := null
,i_par16_name text := null
,i_par16_val text := null
,i_par17_name text := null
,i_par17_val text := null
,i_par18_name text := null
,i_par18_val text := null
,i_par19_name text := null
,i_par19_val text := null
,i_par20_name text := null
,i_par20_val text := null
) is
begin
if logger#is_enbl(i_logger, c_log_level_error) then
doLog(
i_level_id => c_log_level_error
,i_logger => i_logger
,i_msg => i_msg
,i_par1_name => i_par1_name
,i_par1_val => i_par1_val
,i_par2_name => i_par2_name
,i_par2_val => i_par2_val
,i_par3_name => i_par3_name
,i_par3_val => i_par3_val
,i_par4_name => i_par4_name
,i_par4_val => i_par4_val
,i_par5_name => i_par5_name
,i_par5_val => i_par5_val
,i_par6_name => i_par6_name
,i_par6_val => i_par6_val
,i_par7_name => i_par7_name
,i_par7_val => i_par7_val
,i_par8_name => i_par8_name
,i_par8_val => i_par8_val
,i_par9_name => i_par9_name
,i_par9_val => i_par9_val
,i_par10_name => i_par10_name
,i_par10_val => i_par10_val
,i_par11_name => i_par11_name
,i_par11_val => i_par11_val
,i_par12_name => i_par12_name
,i_par12_val => i_par12_val
,i_par13_name => i_par13_name
,i_par13_val => i_par13_val
,i_par14_name => i_par14_name
,i_par14_val => i_par14_val
,i_par15_name => i_par15_name
,i_par15_val => i_par15_val
,i_par16_name => i_par16_name
,i_par16_val => i_par16_val
,i_par17_name => i_par17_name
,i_par17_val => i_par17_val
,i_par18_name => i_par18_name
,i_par18_val => i_par18_val
,i_par19_name => i_par19_name
,i_par19_val => i_par19_val
,i_par20_name => i_par20_name
,i_par20_val => i_par20_val
);
end if;
end error;
---------------------------------------------------------------------------
-- only debug level used for mem_tab logging
procedure tab(i_logger text, i_mem_tab_id id mem_tab) is
begin
if logger#is_enbl(i_logger => i_logger, i_log_level => c_log_level_debug) then
rbsc$tab.tab#log(i_mem_tab_id => i_mem_tab_id);
end if;
end tab;
end RBSC$LOG;