1 votos

Quantlib C++: Cómo enviar QL_TRACE a un archivo de registro

Estoy tratando de dar salida a algunos valores de las variables intermedias en un programa utilizando el Quantlib C++ a un archivo de texto para que pueda tratar de depurar mi código para ver lo que está pasando, y la forma en que configuro mi código es así:

Al principio del método:

std::ofstream outfile ("C:\\temp\\MY DEBUG FILE", std::ofstream::out);
QL_TRACE_ON(outfile); 

luego en el lugar donde me gustaría ver los valores impresos:

QL_TRACE(var1, var2, var3, ....) //many more variable here

y luego hacia el final:

outfile.close();

Sin embargo, cada vez que ejecuto este código se crea el archivo de texto, pero no contiene nada. (archivo de 0 bytes)

También he intentado hacerlo al principio del hpp:

#define QL_ENABLE_TRACING

Y mi ya incluye ql/quantlib.hpp que a su vez incluirá el hpp de rastreo.

¿Hay algo más que se me escapa?

0 votos

¿Por qué no puedes imprimir tú mismo en std::cout?

2voto

Brad Tutterow Puntos 5628

Además de lo que ya has hecho, también tienes que añadir la declaración

QL_TRACE_ENABLE;

a su método antes de comenzar a emitir mensajes de seguimiento; consulte la documentación en http://quantlib.org/reference/group__debug_macros.html .

Además, tenga en cuenta que su declaración

QL_TRACE(var1, var2, var3, ....);

no va a funcionar tal cual, ya que se ampliará a algo como

out << var1, var2, var3 << endl;

que es poco probable que compile (e incluso si lo hace, no hará lo que quieres decir). Si quieres rastrear múltiples variables en una sola sentencia, puedes usar

QL_TRACE(var1 << ", " << var2 << ", " << var3);

en su lugar. La alternativa es utilizar múltiples declaraciones, en cuyo caso es aún mejor escribir

QL_TRACE_VARIABLE(var1);
QL_TRACE_VARIABLE(var2);
QL_TRACE_VARIABLE(var3);
...

que también mostrará el nombre de la variable además de su valor.

0 votos

Gracias @Luigi Ballabio, el código sí compiló pero supongo que por eso no se produjo nada.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X