CocoaLumberjack iOS - 我们可以更改日志文件名称和目录吗?

2024-01-04

我在我的项目中使用 CocoaLumberjack。我需要将日志文件的名称更改为我的自定义文件名。

NSString * applicationDocumentsDirectory = [[[[NSFileManager defaultManager]
                                              URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] path];
DDLogFileManagerDefault *documentsFileManager = [[DDLogFileManagerDefault alloc]
                                                 initWithLogsDirectory:applicationDocumentsDirectory];

DDFileLogger *fileLogger = [[DDFileLogger alloc]
                            initWithLogFileManager:documentsFileManager];    
// Configure File Logger
[fileLogger setMaximumFileSize:(1024 * 1024)];
[fileLogger setRollingFrequency:(3600.0 * 24.0)];
[[fileLogger logFileManager] setMaximumNumberOfLogFiles:1];
[DDLog addLogger:fileLogger];

通过上面的代码,我已将目录更改为文档。但现在我还需要更改日志文件名称。我怎样才能做到这一点?是否可以?


虽然我认为我的回复可能为时已晚,但请在下面找到我的解决方案:

1)继承DDLogFileManagerDefault并重写方法:newLogFileName和isLogFile

#import "DDFileLogger.h"

@interface BaseLogFileManager : DDLogFileManagerDefault

@end

#import "BaseLogFileManager.h"

@implementation BaseLogFileManager

-(NSString *)newLogFileName {
    NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"];
    NSString *timeStamp = [self getTimestamp];

    return [NSString stringWithFormat:@"%@%@.log", appName, timeStamp];
}

-(BOOL)isLogFile:(NSString *)fileName {
    return NO;
}

-(NSString *)getTimestamp {
    static dispatch_once_t onceToken;
    static NSDateFormatter *dateFormatter;
    dispatch_once(&onceToken, ^{
        dateFormatter = [NSDateFormatter new];
        [dateFormatter setDateFormat:@"YYYY.MM.dd-HH.mm.ss"];
    });

    return [dateFormatter stringFromDate:NSDate.date];
}

@end

2)在AppDelegate中,更改以下行:

DDLogFileManagerDefault *documentsFileManager = [[DDLogFileManagerDefault alloc] initWithLogsDirectory:applicationDocumentsDirectory];

TO:

DDLogFileManagerDefault *documentsFileManager = [[BaseLogFileManager alloc] initWithLogsDirectory:applicationDocumentsDirectory];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CocoaLumberjack iOS - 我们可以更改日志文件名称和目录吗? 的相关文章

  • 如何记录 sqlalchemy 中返回的 SQL 语句和行以帮助调试?

    我该如何配置sqlalchemy记录它向数据库服务器发出的 SQL 语句 并记录从这些语句返回的行 这对于调试很有用 选项 1 设置sqlalchemy engine记录器日志级别为logging INFO or logging DEBUG
  • 在 WKWebView 中禁用放大手势

    我正在寻找一种方法来禁用 WKWebView 的 iOS 实现上的 捏合缩放 放大手势 OS X 有一个 magnification BOOL 属性 但在 iOS 上似乎不可用 WKWebView h if TARGET OS IPHONE
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在发生更改事件时将货币格式重新应用到 UITextField

    我正在使用一个包含本地化货币值的 UITextField 我看过很多关于如何使用此功能的帖子 但我的问题是 如何在每次按键后将货币格式重新应用到 UITextField 我知道我可以通过以下方式设置和使用货币格式化程序 NSNumberFo

随机推荐

  • Excel LEN() 函数对长度超过 20 个字符的数字返回 5

    当我的数字超过 20 个字符时 Excel 中的 LEN 函数返回 5 我已经在桌面和移动设备上尝试过此操作 并得到相同的结果 当我使用 评估公式 时 它显示它从 LEN 100000000000000000000 20个零 到 5 如果有
  • 驱动程序的卸载按钮被禁用

    我已经为虚拟设备编写了相当简单的第一个驱动程序 它还有一个 inf 我使用安装驱动程序开发者大会 http support microsoft com kb 311272 它安装良好且功能正常 但我的问题是当我尝试卸载它时 devcon e
  • 使用语义发布获取下一个标签版本

    您好 我在我的存储库中使用语义发布进行版本控制 在我的 Gitlab 中 当我将分支与 master 合并时 我的标签会根据提交而增加 并且工作正常 有什么方法可以让我获得合并之前的 下一个标签版本 我想在合并之前将下一个版本写入文件 尝试
  • 不同基于 C# 的服务之间的通信

    有没有办法在两个不同的服务之间进行通信 我有一项已经运行的服务 有没有办法创建第二个服务 可以附加到第一个服务并向其发送和接收日期 我还想从控制台应用程序访问 Windows 服务并附加到它 是否可以 您可以尝试使用以下方法来实现 IPC
  • 检测语音转文本中的填充词

    我使用 Google Speech API 进行语音到文本的转换 但是 它会过滤掉填充词 例如 呃 嗯 啊 等 我有什么办法可以获得包含填充词的文本吗 使用更灵活的API 如Kaldihttp kaldi asr org http kald
  • apn_sender 和 Rails 3

    我有一个项目需要从服务器向设备发送通知 我不知道如何以及从哪里开始 首先创建表或其他 因为我是 Ruby on Rails 的新手 我已经按照 apn sender 教程进行操作 但它不起作用并且在启动时总是出错 有没有为 Rails 3
  • do.call 构建并执行 data.table 命令

    我有一个小data table代表每个测试单元格的一条记录 AB 测试结果 并且我想添加更多的列来将每个测试单元格与其他测试单元格进行比较 换句话说 我想要添加的列数将取决于相关 AB 测试中有多少个测试单元 My data table好像
  • Python SocketServer 可在本地主机上运行,​​但不能在服务器上运行

    下面是我当前正在使用的代码 usr bin python print Content type application print n n import SocketServer import cgitb cgitb enable clas
  • 角度动画:为父元素和子元素添加动画

    我创建了一个元素 div parent 以及效果很好的 Angular 动画 当我向其中添加一个子元素并尝试同时为子元素设置动画时 其中一个动画最终不会运行 它只是捕捉到新状态 堆栈闪电战 https stackblitz com edit
  • PyBrain 中的 _convertToOneOfMany

    我遵循 PyBrain 教程使用前馈神经网络进行分类 http pybrain org docs tutorial fnn html并想建立我自己的分类器 我不明白怎么办 convertToOneOfMany修改输出 为什么初始操作会all
  • 在 ios 7 中替换弃用的 sizeWithFont:minFontSIze:actualFontSize

    在 iOS 6 中我使用的是这种方法 self handText sizeWithFont font minFontSize 10 0f actualFontSize maxFontSize forWidth handWidth 2 lin
  • FB 广告 API (#17) 达到用户请求限制

    我正在开发 Facebook 广告 api 来获取帐户营销活动数据 我在这里所做的是获取所有营销活动的列表 并对每个营销活动进行 forloop 获取营销活动统计数据 campaignSets account gt getCampaigns
  • 带参数的热切加载 - laravel

    I have Banks表和单独的表services bank Banks find 1 echo bank gt service 1 print bank with that service serviceId 1 可以通过 servic
  • Popen 在 venv 中创建一个附加进程

    Popen 在中创建一个附加进程venv如果我使用 sys executable 请参阅以下脚本 parent py import time import os import sys import psutil def print proc
  • Ruby 1.9 如何处理源代码中的字符大小写?

    在 Ruby 1 8 及更早版本中 Foo 是一个常量 类 模块或其他常量 然而 foo 是一个变量 主要区别如下 module Foo bar 7 BAZ 8 end Foo BAZ gt 8 Foo bar NoMethodError
  • NodeJS / Express 中的“module.exports”和“exports.methods”是什么意思?

    随机看一下源文件 https github com visionmedia express blob master lib router index js of the express框架NodeJS 有两行代码我不明白 这些代码行是几乎所
  • 理解 dart 中的“!”Bang 操作符

    我在 Stateful 类中声明了一个回调方法 如下所示 final void Function int index onSelected MyBottomNavigationBar required this onSelected 并调用
  • 使用 jQuery 获取字符串的一部分

    HTML 代码 div div 我怎样才能得到号码 45 字符串使用jQuery http en wikipedia org wiki JQuery To 返回末尾的数字id属性 use this attr id match d 上面会返回
  • 如何使用 MockHttpServletRequest 对文件上传进行单元测试?

    我有一个 Spring 3 0 控制器 其方法具有HttpServletRequest作为参数之一 因为它正在处理 多个 文件上传 RequestMapping value classified idClassified dealer id
  • CocoaLumberjack iOS - 我们可以更改日志文件名称和目录吗?

    我在我的项目中使用 CocoaLumberjack 我需要将日志文件的名称更改为我的自定义文件名 NSString applicationDocumentsDirectory NSFileManager defaultManager URL