Как остановить журналы записей DDFileLogger фреймворка из основного проекта? - PullRequest
0 голосов
/ 29 марта 2019

И основной проект, и фреймворк используют CocoaLumberjack DDFileLogger, и я хочу, чтобы фреймворк fileLogger записывал только логи из фреймворка. И текущий результат - оба регистратора записывают все журналы из фреймворка и основного проекта.

// Framework
    NSURL *cacheDir = [[NSFileManager.defaultManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] firstObject];
    NSURL *logPath = [cacheDir URLByAppendingPathComponent:@"XXXXFrameworkLog"];
    if (![NSFileManager.defaultManager fileExistsAtPath:logPath.path]) {
        [NSFileManager.defaultManager createDirectoryAtPath:logPath.path withIntermediateDirectories:YES attributes:nil error: nil];
    }
    DDLogFileManagerDefault *manager = [[DDLogFileManagerDefault alloc] initWithLogsDirectory:logPath.path];
    DDFileLogger *fileLogger = [[DDFileLogger alloc] initWithLogFileManager:manager];
    fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
    [DDLog addLogger:fileLogger];

    DDLogDebug(@"DebugInfo0 From XXXXFramework");
    DDLogDebug(@"DebugInfo1 From XXXXFramework");
    DDLogDebug(@"DebugInfo2 From XXXXFramework");
// Main project
    NSURL *cacheDir = [[NSFileManager.defaultManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] firstObject];
    NSURL *logPath = [cacheDir URLByAppendingPathComponent:@"MainLog"];
    if (![NSFileManager.defaultManager fileExistsAtPath:logPath.path]) {
        [NSFileManager.defaultManager createDirectoryAtPath:logPath.path withIntermediateDirectories:YES attributes:nil error: nil];
    }
    DDLogFileManagerDefault *manager = [[DDLogFileManagerDefault alloc] initWithLogsDirectory:logPath.path];
    DDFileLogger *fileLogger = [[DDFileLogger alloc] initWithLogFileManager:manager];
    fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
    [DDLog addLogger:fileLogger];

    DDLogDebug(@"DebugInfo0 From Main Project");
    DDLogDebug(@"DebugInfo1 From Main Project");
    DDLogDebug(@"DebugInfo2 From Main Project");

Результат, оба файла журнала имеют одинаковые журналы.

2019/03/29 15:45:57:943  DebugInfo0 From XXXXFramework
2019/03/29 15:45:57:943  DebugInfo1 From XXXXFramework
2019/03/29 15:45:57:943  DebugInfo2 From XXXXFramework
2019/03/29 15:45:57:958  DebugInfo0 From Main Project
2019/03/29 15:45:57:958  DebugInfo1 From Main Project
2019/03/29 15:45:57:958  DebugInfo2 From Main Project
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...