Puoi avere una procedura che scriva messaggi su una tabella usando una transazione autonoma qualcosa come:
procedure log (p_message)
is
pragma autonomous_transaction;
begin
insert into message_log (user, datetime, message)
values (user, sysdate, p_message);
commit;
end;
Quindi monitora la tabella da un'altra sessione Oracle.