NSLog重定向到文件也将写入/var/log/system.log

时间:2012-12-18 10:07:34

标签: objective-c macos cocoa nslog freopen

我有应用程序,我必须维护该应用程序的日志文件。我正在使用NSLog进行日志记录。但是这也会写入系统日志。如何摆脱这个。

方法:

NSString *appending_filename=[log_dir_path stringByAppendingString:@"/MyApp.log"];

const char *log_p = [appending_filename cStringUsingEncoding:NSUTF8StringEncoding];

newStderr= freopen(log_p, "a", stderr);

NSLog(@" This should only goes to MyApp.log");

3 个答案:

答案 0 :(得分:0)

NSLog将始终记录到系统日志,请参阅documentation

您可能希望查看此帖子,了解其他一些可以执行您想要的日志记录库:

is there a popular open source NSLog replacement that handles enabling only in DEBUG and different log levels?

答案 1 :(得分:0)

SO中搜索Quietlog并使用Google执行相同操作。将Quietlog()复制到您的程序中,根据需要进行修改,然后

#define NSLog() Quietlog()

在您的计划中。因此,您可以将输出重定向(并格式化)为您想要的任何内容。

答案 2 :(得分:0)

即使在尝试了一天不同的事情之后,我也没有得到任何解决方案。继续使用用户定义的功能本身。