Macos 如何读取/写入MAC的/库/日志

Macos 如何读取/写入MAC的/库/日志,macos,file-permissions,nsfilemanager,Macos,File Permissions,Nsfilemanager,我想在Mac应用程序中的/Libary/Logs处创建一个文件 我正在使用以下代码 NSError *error = nil; NSFileManager *fm = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSLocalDomainMask, YES); NSString *path = [[paths objectAtInd

我想在Mac应用程序中的/Libary/Logs处创建一个文件

我正在使用以下代码

NSError *error = nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSLocalDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Logs"];
//path = [path stringByAppendingPathComponent:@"e315Updater"];

if ( ![fm fileExistsAtPath:path] )
{
    BOOL sucess = [fm createDirectoryAtPath:path
 withIntermediateDirectories:YES
                  attributes:nil
                       error:&error];

    NSLog(@"Success value = %d",sucess);
    if ( error ){
        NSLog(@"Err = %@",[error description]);
    }
}
由于权限问题,它一直失败,因为每个用户都没有对此目录的读/写权限

我还尝试使用NSFilePosixPermissions设置/Libary/Logs目录的权限,但也无法设置读/写权限


因此,我需要帮助了解“如何在主磁盘的库/日志(而不是用户库)中创建和读取/写入文件”

OS X权限模型不允许普通用户写入大多数系统目录,包括/Library/Logs。如果你想办法解决这个问题,你发现了一个安全漏洞,需要修复(然后你的应用程序就会失败);如果您更改权限(如果您首先提升权限,您可以这样做),您就破坏了OSX安全模型,这是一个非常糟糕的想法


与其尝试直接写入您自己的私有日志,我建议您通过系统日志记录工具,或者可能通过一个较低级别的接口。你不会得到你自己的私人日志文件,但它确实会工作。

谢谢。你是对的,如果我的应用程序不是以root运行,我的应用程序将无法访问这些目录。因此我决定以deamon的形式编写应用程序,它将以root运行。