0

私はカナガラジです。ストアド プロシージャでは、500 の場所でメッセージをログに記録しており、ログはパフォーマンスの問題が発生しているテーブルに格納されています。これらのメッセージを Debug、Info、および Error メッセージに分割する必要があります。レベルに基づいて、制限されたメッセージのみをログに記録する必要があります。必要に応じて、次のレベルを有効にして、より多くのログを確認します。このレベルベースのロギングを手順に導入する効果的な方法は何ですか?

前もって感謝します。

カナガラジ。

4

4 に答える 4

4

Something like this...

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;

EDIT: Added pragma autonomous_transaction;, thanks Adam

于 2010-09-22T10:13:50.183 に答える
2

sourceforgeで見つけることができる Oracle PL/SQL 用の log4j のポートがあります。これにより、さまざまなレベルでロギングを有効/無効にしたり、特定のパッケージ/機能/手順について構成を変更したりすることができます。また、さまざまな宛先へのリダイレクトもサポートしています。

于 2010-09-22T12:39:57.273 に答える
0

https://sourceforge.net/p/plj-logger/home/で PLJ-Logger をチェックしてください。実装が非常に簡単で、必要な機能とそれ以上の機能を備えています。PL/SQLコードに組み込まれた適切なロギングは、それを変換します。

P

于 2010-10-10T15:43:10.423 に答える