2012-08-22 9 views
6

Estoy usando CocoaLumberjack para todo el registro en mi aplicación. Al usar esto, puedo iniciar sesión directamente en un archivo usando DDLogVerbose (...) o cualquiera de las variantes disponibles.CocoaLumberjack y NSLog en otras bibliotecas

También estoy usando fmdb (envoltorio SQLite). El problema es que esta biblioteca usa NSLog() y ninguna si su salida termina en mi archivo de registro.

¿Hay alguna forma de capturar la salida de NSLog y redirigirla a CocoaLumberjack's? O si eso no es posible, simplemente "reescriba" NSLog() para que realmente ejecute DDLogVerbose()?

Respuesta

1

Trate de añadir

#define NSLog DDLogInfo 

a la parte superior de las otras bibliotecas. Por supuesto, necesitará

#include "Logging.h" 

para que funcione.

+0

¡Gracias! Esto funciona muy bien para mis propias declaraciones NSLog, pero no para las declaraciones de registro de Apple. – vomako

1

Esto puede funcionar, pero también podría crear un bucle infinito ya que CocoaLumberjack está utilizando NSLog, por lo que una redefinición con DDLogInfo podría estropear las cosas. Solo necesitas probar y ver.

+0

Tiene razón, hay un ciclo infinito. ¿Hay alguna solución para esto? – ebi

Cuestiones relacionadas