Le bois est un cadre de journalisation léger écrit dans Swift. Il est très performant et gère toutes les opérations basées sur la journalisation loin du fil principal, garantissant que l'interface utilisateur ou toute autre opération ne reste pas affectée.
Le bois est également incroyablement flexible. Il fournit une classe LogFormat
qui vous permet de spécifier à quoi les messages de journal doivent être apparentés et incluent les formats de date personnalisés, et diverses informations liées au fichier dans lequel le message de journal a été exécuté, tels que le nom de fichier, la fonction et la ligne.
Timber fournit même les moyens d'éloigner vos journaux de la console, en fournissant votre propre tuyau pour stocker les messages de journal ailleurs, comme dans un fichier ou sur votre propre serveur.
Contrairement à un certain nombre d'autres cadres de journalisation disponibles, le bois vous permet de spécifier des niveaux de log pour tout / tous vos fichiers. Disons que, par exemple, vous vouliez désactiver la journalisation des demandes de réseau tout en testant une fonctionnalité distincte, en appelant Logger.registerMinLevel(.None)
Dans votre classe de réseautage, vous pouvez désactiver les messages de journal de la sortie.
Ajoutez simplement ce qui suit à votre podfile. Veuillez noter que le nom du cocoapod est TimberSwift
et non Timber
.
pod 'TimberSwift'
Clone le référentiel et ajoutez tous les fichiers trouvés dans / timber / classes à votre projet.
Il est recommandé d'exécuter les tests unitaires avant d'intégrer le bois dans votre projet. Cela peut être fait en effectuant ce qui suit dans le répertoire racine de Timber. Veuillez vous assurer que Bundler est installé et, en cas d'exécution gem install bundler
.
$ 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...
Afin de remplacer le format de journal par défaut utilisé par Timber, qui est [Level Date Filename:Line] Message
, vous devez d'abord instancier votre propre LogFormat
et le transmettre dans le Logger
global ou le vôtre.
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 )
Le bois est entièrement documenté et la documentation peut être trouvée sur http://maxkramer.github.io/timber/.
Comme mentionné dans Logger + LoGlevels.Swift, nous utilisons uniformément les mêmes priorités de journal que le log4j d'Apache. Le est le suivant:
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
Par conséquent, une demande de journal du niveau P dans un enregistreur avec le niveau Q est activée si p> = q.
Niveau | Description |
---|---|
TOUS | Tous les niveaux, y compris les niveaux personnalisés. |
DÉBOGUER | Désigne des événements d'information à grain fin qui sont les plus utiles pour déboguer une demande. |
ERREUR | Désigne des événements d'erreur qui pourraient toujours permettre à l'application de continuer à fonctionner. |
FATAL | Désigne des événements d'erreur très graves qui mèneront probablement l'application à abandonner. |
Informations | Désigne des messages d'information qui mettent en évidence la progression de l'application à un niveau à grain grossier. |
DÉSACTIVÉ | Le rang le plus élevé possible et vise à désactiver l'exploitation forestière. |
TRACER | Désigne des événements d'information plus fins que le débogage. |
AVERTIR | Désigne des situations potentiellement nocives. |
Visuellement:
Référence: page d'architecture de log4j.