Existen herramientas que se meten entre la base de datos y el cliente para revisar el tráfico de consultas.
Ya que trabajas con FB2.5, puedes probar leyendo la tabla MON$STATEMENTS.
En el campo MON$SQL_TEXT encontrarás la sentencia SQL que las conexiones activas han ejecutado en las transacciones activas.
Una vez que la transacción se termina, se elimina de esta tabla.
Podrías hacer POLLING de esta tabla. (es gratis y quizás descubras algo interesante)
Código:
ULTIMO_STATEMENT_ID = 0
WHILE () DO
BEGIN
SELECT MON$STATEMENT_ID, MON$SQL_TEXT FROM MON$STATEMENS WHERE MON$STATEMENT_ID > :ULTIMO_STATEMENT_ID
Guardas estos datos en un log
ULTIMO_STATEMENT_ID = MON$STATEMENT_ID
Esperas un tiempo (1 segundo por ejemplo)
END