如何在 OS X 上限制启动日志大小?

Rek*_*vni 6 mac-osx launchd launchctl

正如这个答案所建议的那样,我激活了.plist我生成的文件的日志记录。

<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>
Run Code Online (Sandbox Code Playgroud)

但是,日志文件正在慢慢变大,我想知道是否有办法限制日志在.plist文件中的大小?

Rek*_*vni 5

我找不到在文件中执行此操作的方法.plist,但是使用newsyslog(旋转日志文件)似乎是前进的方向。

脚步

  • 编辑/etc/newsyslog.conf
  • 添加以下语法:
<log filename>   [owner:group]  mode count size when flags [/pid_file] [sig_num]
Run Code Online (Sandbox Code Playgroud)
  • 验证配置文件是否正确sudo newsyslog -nvv

例如,从问题中,我将添加以下内容/etc/newsyslog.conf

/path/to/logfile.log               644  2     1000 *     J
/path/to/another_logfile.log       644  2     1000 *     J
Run Code Online (Sandbox Code Playgroud)
  • mode: 644(root可以更改,其他人都可以读取)
  • 计数:2(可能存在的归档文件的最大数量)
  • 大小:1000(最大日志文件大小为 1000 KB)
  • 当:*(对数旋转仅取决于大小)
  • 标志:J(newsyslog 应尝试通过使用压缩旋转日志文件来节省磁盘空间bzip

有关详细信息,请参阅newsyslog 手册。

  • 我尝试了这个,大部分都有效。它轮换日志并在新日志中写入“Jul 22 07:30:02 macmini newsyslog[1768]: logfile returned due to size&gt;1000K”。发生了什么?由 launchd 记录的进程仍在运行,但不会写入新日志。是launchd的错还是进程的错?如果我卸载并加载“.plist”,它会再次开始记录。 (2认同)