Holz ist ein leichtes Protokollierungsrahmen, das in Swift geschrieben wurde. Es ist sehr leistungsfähig und läuft alle auf Protokollierungsbasis basierenden Operationen vom Hauptthread weg, um sicherzustellen, dass die Benutzeroberfläche oder andere Operationen nicht betroffen bleiben.
Holz ist auch wahnsinnig flexibel. Es bietet eine LogFormat
-Klasse, mit der Sie angeben können, wie die Protokollnachrichten aussehen sollten, sowie benutzerdefinierte Datumsformate sowie verschiedene Informationen, die sich auf die Datei beziehen, in der die Protokollnachricht ausgeführt wurde, wie z. B. die Dateiname, Funktion und Zeile.
Timber bietet sogar die Möglichkeit, Ihre Protokolle von der Konsole wegzuschieben, indem Sie Ihr eigenes Rohr bereitstellen, um die Protokollnachrichten an anderer Stelle wie in einer Datei oder auf Ihrem eigenen Server zu speichern.
Im Gegensatz zu einer Reihe anderer verfügbarer Protokollierungs-Frameworks können Sie mit Timber Protokollebene für alle/alle Ihre Dateien angeben. Angenommen, Sie möchten beispielsweise die Protokollierung von Netzwerkanforderungen deaktivieren, während Sie eine separate Funktion testen, indem Sie Logger.registerMinLevel(.None)
aufrufen.
Fügen Sie einfach Folgendes zu Ihrer Podfile hinzu. Bitte beachten Sie, dass der Name des Cocoapod TimberSwift
und nicht Timber
ist.
pod 'TimberSwift'
Klonen Sie das Repository und fügen Sie alle Dateien hinzu, die in /Holz /Klassen zu Ihrem Projekt gefunden wurden.
Es wird empfohlen, die Unit -Tests durchzuführen, bevor Sie Holz in Ihr Projekt integrieren. Dies kann durch die Ausführung der folgenden Wurzelverzeichnisse von Timber erfolgen. Bitte stellen Sie sicher, dass Sie Bundler installiert haben, und falls nicht gem install bundler
zuerst.
$ bundle install
$ make test
Logger . registerMinLevel ( . Error ) // Set the log-level for the current file if needed
Logger . debug ( " This will not be logged as the debug log level is < error " )
Logger . error ( " Oh dear... An error occurred: ( some_error ) " )
Logger . info ( " The network request succeeded with status code ( status code ) " )
Logger . warn ( " The network response contains some unexpected data " )
// etc...
Um das von Timber verwendete Standardprotokollformat zu überschreiben, das [Level Date Filename:Line] Message
ist, müssen Sie zunächst Ihr eigenes LogFormat
instanziieren und an den globalen Logger
oder Ihre eigenen übergeben.
let logFormat = LogFormat ( template : " [%@ %@ %@:%@] %@ " , attributes : [
LogFormatter . Attributes . Level ,
LogFormatter . Attributes . Date ( format : " HH:mm:ss " ) ,
LogFormatter . Attributes . FileName ( fullPath : false , fileExtension : true ) ,
LogFormatter . Attributes . Line ,
LogFormatter . Attributes . Message
] )
// Attach it to the global Logger
Logger . setFormat ( logFormat )
// Or attach it to your own logger
someLogger . logFormat = logFormat
// Or pass it in when you instantiate your logger
let someLogger = Logger ( minLevel : . All , logFormat : logFormat )
Holz ist vollständig dokumentiert und die Dokumentation finden Sie unter http://maxkramer.github.io/timber/.
Wie in Logger+loglevels.swift erwähnt, verwenden wir einheitlich dieselben Protokollprioritäten wie Apache's Log4J. Das ist wie folgt:
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
Daher ist eine Protokollanforderung von Level P in einem Logger mit Level Q aktiviert, wenn p> = q.
Ebene | Beschreibung |
---|---|
ALLE | Alle Ebenen einschließlich benutzerdefinierter Ebenen. |
DEBUGGEN | Bezeichnet feinkörnige Informationsereignisse, die am nützlichsten sind, um eine Anwendung zu debuggen. |
FEHLER | Bezeichnet Fehlerereignisse, mit denen die Anwendung weiterhin ausgeführt werden kann. |
TÖDLICH | Bezeichnet sehr schwerwiegende Fehlerereignisse, die vermutlich die Anwendung abbrechen. |
INFO | Bezeichnet Informationsnachrichten, die den Fortschritt der Anwendung auf grobkörnigem Niveau hervorheben. |
AUS | Der höchstmögliche Rang und soll die Protokollierung ausschalten. |
VERFOLGEN | Bezeichnet feinere Informationsveranstaltungen als das Debuggen. |
WARNEN | Bezeichnet potenziell schädliche Situationen. |
Visuell:
Referenz: Log4Js Architekturseite.