Ich habe angefangen, eine iOS-App mit der neuen Programmiersprache Swift zu bauen. Ich habe es geschafft CocoaPods zu verwenden und konnte den DDTTYLogger mit meinem CustomLoggerFormatter (Objective-C) in meinem AppDelegate.swift erfolgreich erstellen und an die Logger anhängen.
%Vor% Aber das Problem ist, dass die CocoaLumberjack Bibliothek Präprozessormakros für die Loggermethoden wie DDLogVerbose(@"..")
Was in DDLog.h definiert ist:
%Vor%Gibt es eine Problemumgehung, um Präprozessordefinitionen in Swift arbeiten zu lassen? Oder hat jemand etwas Ähnliches mit mehr Erfolg versucht?
Okay, ich habe gerade eine Lösung gefunden. Eine Objective-C Wrapper-Klasse schreiben, die die Präprozessoren aufruft und Methoden zum Aufruf anbietet.
Hoffentlich wird dies anderen Menschen helfen, die sich den gleichen Problemen gegenübersehen.
Ich habe zuerst eine Header-Datei erstellt:
%Vor%Mit der entsprechenden Implementierung:
%Vor% Wichtig ist, dass Sie die Datei DDLogWrapper.h zur Datei ProjectName-Bridging-Header.h hinzufügen und dann in Swift den DDLogWrapper instanziieren und die Methoden logVerbose, logError, logInfo.
aufrufen können.
Mit folgendem Code konnte ich eine Log-Anweisung erstellen:
%Vor%Ich habe einen schnellen Wrapper für CocoaLumberjack erstellt, der alles gut kapselt.
%Vor% Ab 2.0.0beta4
enthält CocoaLumberJack eine CocoaLumberJack.swift
-Datei, die die Integration in Swift-Projekte wirklich erleichtert.
Sie verwenden eine globale Variable defaultDebugLevel
, um die DDLogLevel
festzulegen, und Sie können schnelle grundlegende Makros vorkompilieren, um sie an Ihre Bedürfnisse anzupassen.
Tags und Links ios logging swift lumberjack