¿Alguien me puede decir cuál es la diferencia entre NSLog
y DLog
?Diferencia entre NSLog y DLog
he encontrado sobre este dlog cuando yo estaba buscando sobre este código de proyecto: http://code.google.com/p/iphone-socks-proxy/
¿Alguien me puede decir cuál es la diferencia entre NSLog
y DLog
?Diferencia entre NSLog y DLog
he encontrado sobre este dlog cuando yo estaba buscando sobre este código de proyecto: http://code.google.com/p/iphone-socks-proxy/
NSLog
es una función que se construye en el marco de la Fundación que Apple ofrece. Nunca he oído hablar de DLog
, así que supongo que es una función no estándar implementada por el código que está viendo.
'DLog' significa 'Debug Log' (I ' m asumiendo) y suele ser una macro que no se evalúa en nada si la bandera del entorno 'DEBUG' está desactivada, principalmente en las aplicaciones de envío. –
@Kurt: Incluso yo pensé eso en primer lugar, pero no pude encontrar nada en ese proyecto. Y aquí está el enlace del proyecto que estoy viendo: http://code.google.com/p/iphone-socks-proxy/ – slonkar
Está definido en [SocksProxy_Prefix.pch] (http://code.google.com/ p/iphone-socks-proxy/source/browse/trunk/SocksProxy_Prefix.pch). –
DLog es una macro destinada a condicionalizar el comportamiento de NSLog()
en las versiones de depuración y liberación. Para versiones de lanzamiento, no imprimirá nada. NSLog()
está destinado a imprimir cadenas de formato a la consola.
Aquí es su definición como referencia:
#ifdef DEBUG
# define DLog(...) NSLog(__VA_ARGS__)
#else
# define DLog(...) /* */
#endif
#define ALog(...) NSLog(__VA_ARGS__)
Eso no es verdad. 'NSLog' no está destinado a ser usado para imprimir literales de cadena en la consola, para eso, puede usar' printf' (o 'fputs') y amigos si lo desea. El objetivo de 'NSLog' es imprimir información útil y válida en el registro del sistema. –
dlog es una alternativa de uso común "depuración NSLog" (sólo Google para ello)
Aquí es un conjunto completo de directivas #define registro (incluyendo Ulog, una función de registro basado UIAlertView)
// DLog will output like NSLog only when the DEBUG variable is set
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
// ALog will always output like NSLog
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
// ULog will show the UIAlertView only when the DEBUG variable is set
#ifdef DEBUG
# define ULog(fmt, ...) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }
#else
# define ULog(...)
#endif
Justo colóquelos en su archivo de encabezado de precompilación (.pch).
(fuente: http://overbythere.co.uk/blog/2012/01/alternatives-nslog)
Hola, Debajo del cmd macro para el formato de archivo de sustitución NSLog y también por debajo he mencionado undef Macro, así como
Definición:
#define _LOG_TO_CONSOLE_ //#undef _LOG_TO_CONSOLE_
#ifdef _LOG_TO_CONSOLE_
#define DLog(format, ...) NSLog(format, ##__VA_ARGS__)
#else
#define DLog(format, ...)
#endif
Creo que una diferencia importante entre NSLog y DLog es que NSLog retrasa la ejecución del programa (imagina olvidar para eliminar todas las llamadas NSLog en producción/publicación), por lo que para depuración se debe usar DLog.
¿Qué es DLog por curiosidad? –
http://www.google.com/search?q=DLog+vs+NSLog 989,000 resultados. – CodaFi
[La evolución de un reemplazo para NSLog] (http://iphoneincubator.com/blog/debugging/the-evolution-of-a-replacement-for-nslog) – vikingosegundo