Logger
Logger copied to clipboard
Add option to allow parameter arguments to be stored in a detail table
For many cases to store the parameters (and function return values) in a clob is perfectly fine. Sometimes I see the need to do analysis over the parameters. It would be preferable to have an extra table that allows to do such parameter analysis.
Example
--- logger testcase
execute logger.purge_all;
declare
procedure do_something (p1 in number) as
v_params logger.tab_param;
begin
logger.append_param(v_params, 'p1', p1);
logger.log('Test',p_params=> v_params);
end do_something;
begin
--
for i in 1..1000 loop
do_something(i+ round(dbms_random.value(low=>1,high=>10)));
end loop;
end;
/
select * from logger_logs_60_min;
desc logger;
-- task: find all logged rows where parameter p1 is between 10 and 15
-- wish:
select *
from logger_logs l
join logger_params p on l.log_id = p.log_id
where name = 'P1'
and val_num between 10 and 15;
Yes I know I can also parse the clob. But there I depend on how logger concats the parameters. I would like to have an option, to get those parameters separately, to be able to easily search through some larger amount of parameters.