ios - NSLog/Log4Cocoa 控制台日志需要保存在文件中

标签 ios cocoa-touch nslog

对于我的应用程序,我需要将所有类型的控制台日志保存在文本或日志文件中。我正在使用 Log4Cocoa 生成不同类型的日志。那么如何将所有这些控制台日志保存到文件中呢?有人可以帮助我吗?

谢谢

最佳答案

使用 Log4Cocoa,每个记录器都可以附加一个或多个目的地。因此,如果将文件附加程序附加到根记录器对象,则每条日志消息都将发送到该文件。当您初始化日志系统时,添加如下内容:

NSString *logFileName = @"path-to-your-log-file";

[[L4Logger rootLogger] addAppender: 
        [[L4FileAppender alloc] initWithLayout:[L4Layout simpleLayout] 
                                      fileName:logFileName];

如果您使用L4FileAppender,您写入的文件可以无限增长。因此,您可以考虑使用 L4RollingFileAppenderL4DailyRollingFileAppender 来代替。 L4RollingFileAppender 根据文件大小滚动文件。 L4DailyRollingFileAppender 根据时间滚动文件。不管顾名思义,您可以配置 L4DailRollingFileAppender 在不同的时间段滚动(每分钟、每小时、每 1/2 天等)。 p>

如果您确实使用文件附加程序,那么您需要考虑如何从设备中获取日志文件,特别是如果您需要在应用程序的生产版本中进行日志记录。

尽管我很喜欢 Log4Cocoa 的优雅,但我最终还是切换到了 NSLogger ( https://github.com/fpillet/NSLogger ),您可能想看看。

关于ios - NSLog/Log4Cocoa 控制台日志需要保存在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005250/

相关文章:

iphone - 为什么图像没有从 url 的 xml 文件加载并且没有显示在表格 View 中

ios - 苹果账户和地区问题

iphone - 实现照片应用程序的全屏栏消失行为

ios - 如何在 Swift 中分配 CoreData 多对多关系?

objective-c - 仅当我 NSLog 某些值时,代码才有效 - 但为什么呢?

iphone - 记录到 iPhone 上的文件

iphone - 从标签栏弹出的图标

iphone - GPUImage 问题 iPhone

iOS : pan around within a view

swift - 如何在 swift 项目中将 NSLog 重定向到 3rd 方日志目标?