我想在我的iPhone应用程序中创建两个日志文件。如果我使用freopen()将NSLog输出重定向到一个文件,那么所有的日志语句都会进入一个提到的文件。
但我想把一些日志语句放到一个文件中,而一些文件放到不同的文件中。
任何想法,我该怎么做?在iPhone应用程序中创建多个日志文件
回答
最好的方法是编写自己的记录器类作为您替代NSLog()替代的替代品。这样,您可以在运行时轻松确定应将哪些日志写入哪个文件。您的自定义类可以使用NLog()同时写入控制台。这似乎是最佳方法,因为freopen()
只是批量重定向所有日志输出。
开始与伐木工人框架:https://github.com/robbiehanson/CocoaLumberjack
我希望把一些日志报表合并成一个文件,而一些到不同的文件
有一对夫妇的方式来实现这一目标。这里有一个例子: 添加2文件记录器:
fileLoggerA = [[DDFileLogger alloc] init];
fileLoggerB = [[DDFileLogger alloc] init];
[DDLog addLogger:fileLoggerA];
[DDLog addLogger:fileLoggerB];
所以在这一点,所有的日志报表将得到引导到两个fileLogger1 & fileLogger2。接下来,我们将为每个fileLogger添加一个“筛选器”,以便它们忽略不针对它们的日志语句。
我们将创建2个不同的记录宏做到这一点:考勤()&博客()
fileLoggerA只能从写日志考勤记录语句()。 fileLoggerB只会从BLog()写入日志语句。
要进行设置,我们可以利用“日志上下文”。你可以做简单的东西如:
#define ALog(frmt, ...) SYNC_LOG_OBJC_MACRO(0, 0, 1, frmt, ##__VA_ARGS__)
#define BLog(frmt, ...) SYNC_LOG_OBJC_MACRO(0, 0, 2, frmt, ##__VA_ARGS__)
很明显,你可以得到比这更先进的(如增加对日志级别等支持),但要注意的是考勤如何拥有1“背景”,并BLog有一个“上下文”2.
现在你只需要创建一个“自定义格式化程序/过滤器”。这里有一个例子:
- (NSString *)formatLogMessage:(DDLogMessage *)logMessage
{
if (logMessage->logContext == theContextIShouldLog)
return logMessage->logMsg;
else
return nil;
}
,当然,您的自定义格式/过滤器添加到文件记录器:
[fileLoggerA setLogFormatter:[MyContextFilter filterWith:1]];
[fileLoggerB setLogFormatter:[MyContextFilter filterWith:2]];
这些主题的更多信息可以通过伐木工人项目页面上找到:
https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomFormatters https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomContext https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomLogLevels
- 1. 在iOS应用程序中创建日志文件
- 2. 日志文件没有在Spring MVC应用程序中创建
- 3. 如何在asp.net web应用程序中创建日志文件?
- 4. 应用程序无法在UNIX中创建日志文件?
- 5. 在Web应用程序中为每个用户创建日志文件
- 6. 为什么log4j在我的Java应用程序中创建日志文件,但不是在我的Web应用程序中创建日志文件?
- 7. 在iPhone应用程序中创建一个XML文件
- 8. spark应用程序不会创建日志文件
- 9. Spark应用程序log4j日志文件未创建
- 10. 为应用程序安装创建自定义日志文件
- 11. 为Android应用创建日志文件
- 12. 在C++/CLI中使用时未创建C#应用程序log4net日志文件
- 13. 在py2app mac应用程序中没有使用日志模块创建文件
- 14. Log 4j多个Web应用程序的常用日志文件?
- 15. VB6-如何在启动应用程序时在VB6中创建日志文件
- 16. 分离tomcat日志文件和应用程序日志文件
- 17. 我的应用程序在Docker中启动时无法创建日志文件
- 18. 如何在c#中为windows应用程序创建日志文件?
- 19. 从iPhone应用程序导出日志
- 20. iPhone应用程序崩溃日志
- 21. 在iPhone应用程序中创建.swf
- 22. 为在web应用程序中创建的每个新登录会话创建日志文件
- 23. NLog不在MVC应用程序中创建日志?
- 24. 在wpf应用程序中创建错误日志
- 25. Heroku应用程序 - 日志文件夹
- 26. 如何为每个应用程序运行创建新的日志文件
- 27. 如何在mfc中为多线程应用程序创建通用日志文件?
- 28. 创建iPhone应用程序以在iPhone中拥有多个用户
- 29. 呼应(创建)错误日志文件
- 30. 如何让iPhone应用程序崩溃日志从iPhone文件编程
这就是我的想法,但我正在寻找一些可以为我做的框架,我可以节省时间来编写自定义记录器。感谢建议。 – Anshul