![](/img/trans.png)
[英]How to redirect standard Mac OS X log output that my app is generating to a file?
[英]Mac OS X: where app can create a log file?
我的應用程序像這樣創建它的日志文件
FILE *ftemp = NULL;
ftemp=fopen("/var/log/x.log", "ab+");
if(ftemp)
{
fprintf(stderr, "ftemp: log created\n");
}
else
{
fprintf(stderr, "ftemp: log error:%s\n", strerror(errno));
}
輸出是:
ftemp: log error:Permission denied
我會把它部署到其他機器上。 是否有任何位置我的應用程序有權在任何其他計算機上創建其日志文件?
如果您的程序以 root 身份運行(顯然不是,從您的“權限被拒絕”錯誤判斷),則/var/log
或/Library/Logs
是合適的。
如果您的程序以普通用戶身份運行,則~/Library/Logs
是合適的。
最好創建一個以您的程序命名的子目錄(在您最終使用的任何日志目錄中),並將您的日志寫入該子目錄中。 例如,macOS 上的 Apache 默認將其日志寫入/var/log/apache2
; Notes 應用程序將其日志寫入~/Library/Logs/com.apple.Notes
。
如果您的程序以系統帳戶(不是 root 而是普通用戶帳戶)運行,那么也許您的安裝程序可以以 root 身份在/var/log
或/Library/Logs
下創建 log 子目錄,然后將其chown
到該系統帳戶以進行它可由您的程序寫入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.