Ведение журнала на уровне уровня в Oracle - PullRequest
0 голосов
/ 22 сентября 2010

Я Канагарадж. В нашей хранимой процедуре мы регистрируем сообщения в 500 местах, а журналы хранятся в таблице, где у нас возникают проблемы с производительностью. Нам нужно разделить эти сообщения на сообщения отладки, информации и ошибок. Исходя из уровня, должны быть зарегистрированы только ограниченные сообщения. При необходимости мы включим следующий уровень и увидим больше логов. Что может быть эффективным способом для внедрения этого уровня регистрации в нашей процедуре?.

Заранее спасибо.

Kanagaraj.

Ответы [ 4 ]

4 голосов
/ 22 сентября 2010

Как то так ...

create or replace package logger as
  min_level number := 2;
  procedure ins_log(level number, message varchar2);
end;

create or replace package body logger as
  procedure ins_log(level number, message varchar2) is
    pragma autonomous_transaction;
  begin
    if level>=min_level then
      insert into loggin(ts, msg) values (sysdate, message);
    end if;
    commit; // autonomous_transaction requires that
  end;
end;

РЕДАКТИРОВАТЬ: Добавлено pragma autonomous_transaction;, спасибо Адам

2 голосов
/ 22 сентября 2010

Существует порт log4j для Oracle PL / SQL, который можно найти в sourceforge .Это позволяет включать / отключать ведение журнала на разных уровнях, а для конкретных пакетов / функций / процедур просто изменять конфигурацию.Также поддерживается перенаправление на разные направления.

1 голос
/ 09 августа 2013

немного поздно;Я рекомендую вам использовать Logger: https://github.com/tmuth/Logger---A-PL-SQL-Logging-Utility Он будет соответствовать вашим требованиям.

0 голосов
/ 10 октября 2010

Проверьте PLJ-Logger на https://sourceforge.net/p/plj-logger/home/. Его действительно легко реализовать, он имеет желаемую функциональность и многое другое.Правильная регистрация, встроенная в код PL / SQL, преобразует его.

P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...