목재는 Swift로 작성된 가벼운 로깅 프레임 워크입니다. 그것은 매우 성능이 뛰어나고 모든 로깅 기반 작업을 메인 스레드에서 멀리 실행하여 UI 또는 기타 작업이 영향을받지 않도록합니다.
목재는 또한 미친 듯이 유연합니다. 로그 메시지의 모양을 지정할 수있는 LogFormat
클래스를 제공하고 사용자 정의 날짜 형식 및 파일 이름, 기능 및 줄과 같이 로그 메시지가 실행 된 파일과 관련된 다양한 정보를 포함합니다.
Timber는 파일이나 자신의 서버와 같은 다른 곳에 로그 메시지를 저장할 수있는 자신의 파이프를 제공함으로써 로그를 콘솔에서 멀어지게하는 수단을 제공합니다.
Timber를 사용하면 모든 파일에 대한 로그 레벨을 지정할 수 있습니다. 예를 들어, 네트워킹 클래스에서 Logger.registerMinLevel(.None)
호출하여 별도의 기능을 테스트하는 동안 네트워크 요청의 로깅을 비활성화하려면 로그 메시지가 출력되는 것을 비활성화 할 수 있습니다.
Podfile에 다음을 추가하기 만하면됩니다. Cocoapod의 이름은 TimberSwift
아니라 Timber
아닙니다.
pod 'TimberSwift'
저장소를 복제하고 /목재 /클래스에있는 모든 파일을 프로젝트에 추가하십시오.
목재를 프로젝트에 통합하기 전에 장치 테스트를 실행하는 것이 좋습니다. 이것은 Timber의 루트 디렉토리에서 다음을 수행하여 수행 할 수 있습니다. Bundler가 설치되어 있는지 확인하고 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...
[Level Date Filename:Line] Message
인 Timber에서 사용하는 기본 로그 형식을 무시하려면 먼저 자신의 LogFormat
인스턴스화하고 글로벌 Logger
또는 자신의 자신의 것으로 전달해야합니다.
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 )
목재는 완전히 문서화되어 있으며 문서는 http://maxkramer.github.io/timber/에서 찾을 수 있습니다.
Logger+Loglevels.swift에서 언급했듯이 Apache의 Log4J와 동일한 로그 우선 순위를 균일하게 사용합니다. IS는 다음과 같습니다.
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
따라서 P> = Q 인 경우 레벨 Q가있는 로거에서 레벨 P의 로그 요청이 활성화됩니다.
수준 | 설명 |
---|---|
모두 | 맞춤형 레벨을 포함한 모든 레벨. |
디버그 | 응용 프로그램을 디버깅하는 데 가장 유용한 세밀한 정보 이벤트를 지정합니다. |
오류 | 애플리케이션이 계속 실행될 수있는 오류 이벤트를 지정합니다. |
치명적인 | 응용 프로그램이 중단 될 것으로 예상되는 매우 심각한 오류 이벤트를 지정합니다. |
정보 | 거친 입자 수준에서 응용 프로그램의 진행 상황을 강조하는 정보 메시지를 지정합니다. |
끄다 | 가능한 가장 높은 순위와 로깅을 끄기위한 것입니다. |
추적하다 | 디버그보다 더 미세한 정보 이벤트를 지정합니다. |
경고하다 | 잠재적으로 유해한 상황을 지정합니다. |
시각적 :
참조 : Log4J의 아키텍처 페이지.