0

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

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

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

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

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

4

1 回答 1

1

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

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

于 2009-09-13T02:43:13.273 回答