/* JANSLogHack By Jens Ayton Use of constructor attribute suggested by Jonathan Wight. Add this file to your project to cause NSLog() messages to be printed to standard out. It is the opinion of the author of this file that it does not have sufficient depth to constitute a "work" for the purposes of copyright, and is therefore in the public domain by default. If you disagree with this assessment, you may contact the author for licensing terms via any of several e-mail addresses found at . The _NSSetLogCStringFunction() is documented at (in the context of WebObjects 4 for Windows NT). However, note that the documentation clearly states that the function is private and unsupported. It is strongly recommended that this code not be used in production code. For completeness, I should mention that there is a matching undocumented getter, _NSLogCStringFunction(), which takes no parameters and returns a function pointer. */ #ifndef NDEBUG #import #import extern void _NSSetLogCStringFunction(void (*)(const char *string, unsigned length, BOOL withSyslogBanner)); static void PrintNSLogMessage(const char *string, unsigned length, BOOL withSyslogBanner) { puts(string); } static void HackNSLog(void) __attribute__((constructor)); static void HackNSLog(void) { _NSSetLogCStringFunction(PrintNSLogMessage); } #endif