DBMS_OUTPUT の使用を置き換えるために、既存の Oracle アプリケーションにロギング フレームワークを導入しようと考えています。
フレームワークは、主にデバッグを支援するために使用され、x プロシージャの開始、パラメーターの詳細、プロシージャ x の終了などの詳細を示します。また、すべてまたは 1 つのプログラム ユニット、さまざまなレベルのトレースに対して有効にする機能も備えている必要があります。実際、ほとんど標準的なロギング機能です。
これらの要件の実装は比較的簡単ですが、この機能をオフまたはオンにする最善の方法を教えてください。私が達成しようとしているのは、トレースがオフになっているときのパフォーマンスへの影響を最小限に抑えることです。うまくいけば、ほとんどの場合はそうなるはずです!
アプリケーションは 10g リリース 2 を使用しているため、最初はロギング メカニズムを条件付きコンパイル内にラップして、通常の操作中にロギング フレームワークが表示されないようにする外観が気に入りました。残念ながら、ほとんどのアプリケーションはスタンドアロンのプロシージャと関数を使用して構築されているため、このアイデアをしぶしぶ放棄する必要がありました。そのため、ログ機能をオンにすると多くのコードが無効になる可能性があります。
インスピレーションを得るために、いくつかの既存のオープンソースと他のフレームワーク\機能を調べました。
log4plsql ( http://log4plsql.sourceforge.net/ )
ここでのAPCのレビューは 、特に許容できる影響の下で、私に懸念を与えます.
OraLog プロジェクト ( http://oralog.sourceforge.net )
2007年以降更新なし
PL/VISION(こちら)
かなり古いように見えますが、Oracle 8i から変更はありませんか?
Tom Instrumentationに問い合わせる(ここ)
更新 01/04/2014 Tom Kyteが Tyler Muth のLoggerを推奨
なんらかの形式のログインを Oracle アプリケーションに導入した場合、それをどのように実装したか、特にどのように制御したかについて、その経験をお聞きしたいと思います。