Когда и как мы должны писать журналы приложений для выполнения хранимых процедур (Oracle DB)? - PullRequest
0 голосов
/ 06 июня 2018

Я хочу знать, каковы правила большого пальца / руководящие принципы для записи журналов хранимой процедуры (прикладных программ).Обычно мы используем 2 метода: 1) Используйте пакет UTL_FILE для записи логов в файлы (отдельные файлы для каждого запуска).2) Используйте пакет Log4pl для записи различных журналов (dignostic, Error, Warning или Fatal) в таблицу.Почти для каждой процедуры мы используем выше 2 метода в зависимости от того, что мы пишем.Как и для фатальной ошибки, мы используем Log4pl и для отображения некоторой информации (например, какую запись ее обработки мы записываем в файл).Хотите знать, как другие организации ведут журналы?Они также используют aboe 2 метода или используют только один?на каком основании это было решено?Примечание. Я ищу записи журналов только для прикладного программирования, а не для Databse.Любые предложения или ссылки на блоги будут отличными.Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

UTL_FILE не очень хорошо масштабируется для записи файлов журнала, например,

SQL> create table log_table (
  2    s timestamp default systimestamp,
  3    m varchar2(1000)
  4    );

Table created.

SQL>
SQL> set timing on
SQL> begin
  2    for i in 1 .. 10000 loop
  3      insert into log_table (m) values ('My message');
  4      commit;
  5    end loop;
  6  end;
  7  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.62
SQL>
SQL> declare
  2    f utl_file.file_type;
  3  begin
  4    f := utl_file.fopen('TMP','logfile.dat','W');
  5    for i in 1 .. 10000 loop
  6      utl_file.put_line(f,to_char(systimestamp)||' '||'My message');
  7      utl_file.fflush(f);
  8    end loop;
  9    utl_file.fclose(f);
 10  end;
 11  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:30.58

Теперь вы можете подумать: «Я просто удалю вызов utl_file.fflush (f)», который действительно будетзаставить его работать в сопоставимое время с таблицей базы данных.Но время, когда вам больше всего нужна эта информация о регистрации, - это когда ваша программа падает, и если она падает, и вы не сбросили ее, тогда вы рискуете потерять последние данные регистрации, что крайне важно для понимания причины сбоя вашей программы.

0 голосов
/ 06 июня 2018

еще один способ реализовать механизм регистрации в приложении oracle- -> splunk

...