I don't like to leave calls to NSLog() in release build. Given the performance considerations and system log filled with my debug output, it's not a very good idea. I've been using this macro for all my logging needs. Here, it is:

#ifdef DEBUG
#define DLog( s, ... ) NSLog( @"<%p %@:%@(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent],NSStringFromSelector(_cmd), __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... )
#endif

It gives your all needed debug information automatically (i.e. time, filename, class name, selector name, line number, etc) and in the release build this macro resolves to nothing so it doesn't take any resources. I've stumbled upon it long time ago, made some changes.