使用适用于 Mac 的 Google 工具箱记录到文件时记录文件翻转

Posted

技术标签:

【中文标题】使用适用于 Mac 的 Google 工具箱记录到文件时记录文件翻转【英文标题】:Log file rollover when logging to file using Google toolbox for Mac 【发布时间】:2009-09-11 16:50:08 【问题描述】:

我正在使用 Google toolbox for Mac 的 GTMLogger 来记录我正在开发的应用程序中的文件。

我正在尝试决定当文件变得足够大时如何进行日志文件翻转。

理想情况下,当日志文件在任何时候达到 1 mb 且最多 11 个日志文件时,我想要类似 log4net 的立即翻转,但我没有看到任何内置方法可以做到这一点,我想知道是否尝试添加它的麻烦大于它的价值。

我能想到的更简单的选择是在应用程序启动时进行此检查并将日志滚动到超过一定大小。这样做的缺点当然是如果有人让应用程序运行一两个星期(并且由于应用程序的一部分是启动守护程序,这对于那些很少重新启动的人来说肯定是可能的),可能会有一个非日志文件- 在此期间建立的微不足道的大小(取决于启用的日志记录级别)。

我在这里的最佳选择是什么?

【问题讨论】:

【参考方案1】:

您担心仅在启动时检查可能不够频繁。因此,在启动时在 runloop 中放置一个计时器以立即触发日志检查,之后每隔一两天触发一次。如果您的目标是一次最多使用 1 MiB,即使您确实超过了一段时间的限制,也可能没有那么重要。

您也可以看看 log4net 如何实现此功能:就像挂钩每个 Append() 以检查是否满足大小/日期限制并在必要时调整记录到的文件一样简单。有关详细信息,请参阅RollingFileAppender source code;从AdjustFileBeforeAppend() 开始,然后查看RollOverSize()这是 Apache:使用源代码!

【讨论】:

我们最终扩展了 GTM 的日志记录以支持此功能。

以上是关于使用适用于 Mac 的 Google 工具箱记录到文件时记录文件翻转的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Ruby 的 AWS 开发工具包时在 AWS Kinesis Firehose 记录之间插入换行符

App Action 适用于 App Actions 测试工具,但不适用于 Google Assistant

适用于Mac系统的API接口调试应用

使用标准 C 库将文件读取到内存 - Windows 过早识别 EOF 但适用于 Mac、Linux

使用适用于 Node.js 的 AWS 开发工具包将二进制文件上传到 S3

类似于 ImageOptim (of mac) 的 Windows 图像压缩工具 [关闭]