A madeira é uma estrutura de log leve escrita em Swift. É muito executado e afasta todas as operações baseadas em registro do tiro principal, garantindo que a interface do usuário ou qualquer outra operações permaneçam não afetadas.
A madeira também é incrivelmente flexível. Ele fornece uma classe LogFormat
que permite especificar como as mensagens de log devem parecer e inclui formatos de data personalizados e várias informações relacionadas ao arquivo em que a mensagem de log foi executada, como nome de arquivo, função e linha.
A Timber ainda fornece os meios para afastar seus logs do console, fornecendo seu próprio tubo para armazenar as mensagens de log em outro lugar, como em um arquivo ou em seu próprio servidor.
Ao contrário de várias outras estruturas de registro disponíveis, a Timber permite especificar níveis de log para qualquer um dos seus arquivos. Digamos, por exemplo, você deseja desativar o registro de solicitações de rede ao testar um recurso separado, chamando Logger.registerMinLevel(.None)
Na sua classe de rede, você pode desativar a saída das mensagens de log.
Basta adicionar o seguinte ao seu podfile. Esteja ciente de que o nome do Cocoapod é TimberSwift
e não Timber
.
pod 'TimberSwift'
Clone o repositório e adicione todos os arquivos encontrados em /madeira /classes ao seu projeto.
Recomenda -se que você execute os testes de unidade antes de integrar a madeira em seu projeto. Isso pode ser feito executando o seguinte no diretório raiz de Timber. Certifique -se de instalar o Bundler e, se não for executado primeiro 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...
Para substituir o formato de log padrão usado por madeira, que é a [Level Date Filename:Line] Message
, você deve primeiro instanciar seu próprio LogFormat
e passá -lo para o Logger
Global ou o seu.
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 )
A madeira está totalmente documentada e a documentação pode ser encontrada em http://maxkramer.github.io/timber/.
Conforme mencionado no Logger+LogLevels.swift, usamos uniformemente as mesmas prioridades de log que o log4j do Apache. O seguinte é o seguinte:
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
Portanto, uma solicitação de log do nível P em um madeireiro com o nível q é ativada se p> = q.
Nível | Descrição |
---|---|
TODOS | Todos os níveis, incluindo níveis personalizados. |
DEPURAR | Designa eventos informativos de granulação fina que são mais úteis para depurar um aplicativo. |
ERRO | Designa eventos de erro que ainda podem permitir que o aplicativo continue em execução. |
FATAL | Designa eventos de erro muito graves que presumivelmente liderarão o aplicativo para abortar. |
Informações | Designa mensagens informativas que destacam o progresso do aplicativo em nível de granulação grossa. |
DESLIGADO | A classificação mais alta possível e pretende desligar o registro. |
Traço | Designa eventos informativos de granulação mais fina do que a depuração. |
AVISAR | Designa situações potencialmente prejudiciais. |
Visualmente:
Referência: página de arquitetura do log4j.