Я хочу представить структуру ведения журнала в нашем существующем приложении Oracle, чтобы заменить использование DBMS_OUTPUT.
Фрейм будет использоваться в первую очередь для облегчения отладки и будет описывать такие вещи, как начальная процедура x, детали параметров, процедура окончания x и т.д. Она также должна включать функции для всех или только одного программного модуля, различные уровни трассировки на самом деле являются довольно стандартными функциями ведения журнала.
Реализация этих требований должна быть относительно простой, однако, если бы я хотел, чтобы ваша помощь помогла вам как можно лучше отключить эту функцию. То, что я пытаюсь достичь, - это наименьшая возможная производительность при отключении трассировки. Что, надеюсь, должно быть в большинстве случаев!
Как приложение использует 10g release 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, как вы его реализовали, и особенно, как вы его контролируете.