I want to have a custom log file for my app, so that my client can send it to me when things go "different".

In reading the docs for NSLog, it seems that it is just a front-end for asl. So here's what I thought should work:

directories = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *logFileName = nil;
int result = 0;
if ([directories count] > 0) {
   logFileName = [directories objectAtIndex:0];
   logFileName = [logFileName stringByAppendingPathComponent:@"Logs"];
if ([fileMgr createDirectoryAtPath:logFileName withIntermediateDirectories:YES attributes:nil error:nil]) { logFileName = [logFileName stringByAppendingPathComponent:@"MyLogFile.log"]; int fd = open([logFileName fileSystemRepresentation], (O_RDWR| O_CREAT|O_TRUNC), (S_IRWXU|S_IRWXG|S_IRWXO));
      if (fd != -1) {
         result = asl_add_log_file(NULL, fd);
      }
   }
}

This results in the file being created, but nothing ever being written to it. In Console.app, I can see the messages when I select "All Messages", "Console Messages", and "system.log", but *not* "MyLogFile.log".

I assume it has something to do with this comment in the docs for NSLogv (which NSLog calls): "If the STDERR_FILENO file descriptor has been redirected away from the default or is going to a tty, it will also be written there. If you want to direct output elsewhere, you need to use a custom logging facility." This seems contradictory to the statement that NSLog "Logs an error message to the Apple System Log facility." If anyone would like to educate me on my obvious misunderstanding of this, I'd appreciate it.

Anyway, I tried it, and yes, redirecting stderr to my log file does put all my NSLogs into my log file. But, it also prevents the messages from being seen in Xcode's Console window.

How can I have my cake and eat it too?


randy
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to