Cocoalumberjack 은 MacOS, iOS, TVOS, WatchOS 및 VisionOS를위한 빠르고 단순하지만 강력하고 유연한 로깅 프레임 워크입니다.
먼저 코코아포드, 카르타고, 신속한 패키지 관리자 또는 수동으로 Cocoalumberjack을 설치하십시오. 그런 다음 iOS 10 이상에 DDOSLogger 사용하거나 이전 버전을 위해 DDTTYLogger 및 DDASLLogger 사용하여 메시지 로깅을 시작하십시오.
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end 참고 : Swift 는 모든 OBJ-C 코드와 Swift 코드를 포함하는 SUBSPEC이므로 충분합니다. Lumberjack과 함께 Swift를 사용하는 방법에 대한 자세한 내용은이 대화를 참조하십시오.
objective-c의 경우 다음을 사용하십시오.
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCarthage는 Swift and Objective-C의 경량 의존 관리자입니다. 그것은 Cocoatouch 모듈을 활용하고 Cocoapods보다 덜 침습적입니다.
Carthage로 설치하려면 Carthage의 지침을 따르십시오
카트 파일
github "CocoaLumberjack/CocoaLumberjack"
CocoAlumberjack 3.6.0에서 Swift 패키지 관리자를 통합 방법으로 사용할 수 있습니다. Swift 패키지 관리자를 통합 방법으로 사용하려면 Xcode를 사용하여 패키지 종속성을 추가하거나 패키지에 다음 종속성을 추가하십시오.
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , SPM이 CocoaLumberjackSwift 가 CocoaLumberjack 에 의존한다고 감지하지 못하기 때문에 대상에 CocoaLumberjack 및 CocoaLumberjackSwift 대상에 추가해야 할 수도 있습니다.
CocoAlumberjack을 수동으로 설치하려면 자세한 내용은 수동 설치 안내서를 읽으십시오.
일반적으로 import CocoaLumberjackSwift 수 있습니다. Cocoapods를 사용하여 Cocoalumberjack을 설치 한 경우 대신 import CocoaLumberjack 사용해야합니다.
DDLog . add ( DDOSLogger . sharedInstance ) // Uses os_log
let fileLogger : DDFileLogger = DDFileLogger ( ) // File Logger
fileLogger . rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger . logFileManager . maximumNumberOfLogFiles = 7
DDLog . add ( fileLogger )
...
DDLogVerbose ( " Verbose " )
DDLogDebug ( " Debug " )
DDLogInfo ( " Info " )
DDLogWarn ( " Warn " )
DDLogError ( " Error " ) Lumberjack을 프레임 워크로 사용하는 경우 @import CocoaLumberjack; . 그렇지 않으면 #import <CocoaLumberjack/CocoaLumberjack.h>
[DDLog addLogger: [DDOSLogger sharedInstance ]]; // Uses os_log
DDFileLogger *fileLogger = [[DDFileLogger alloc ] init ]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 ; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7 ;
[DDLog addLogger: fileLogger];
...
DDLogVerbose ( @" Verbose " );
DDLogDebug ( @" Debug " );
DDLogInfo ( @" Info " );
DDLogWarn ( @" Warn " );
DDLogError ( @" Error " ); Lumberjack을 기존 목표 C에 통합 할 때 Multiple methods named 'tag' found with mismatched result, parameter type or attributes 실행할 수 있습니다.
Cocoalumberjack을 가져 오기 전에 #define DD_LEGACY_MESSAGE_TAG 0 추가하거나 #define DD_LEGACY_MESSAGE_TAG 0 추가하기 전에 -DDD_LEGACY_MESSAGE_TAG=0 xcode 프로젝트에서 다른 c 플래그 / Other_cflags 에 추가하십시오.
Cocoalumberjack은 또한 Swift-Log의 백엔드 구현과 함께 배송됩니다. SPM 대상에 CocoAlumberjack을 종속성으로 추가하고 (위 참조) CocoaLumberjackSwiftLogBackend 제품을 대상의 종속성으로 추가하십시오.
그런 다음 DDLogHandler Swift-Log의 백엔드로 사용하여 모든 메시지를 Cocoalumberjack의 DDLog 로 전달할 수 있습니다. DDLog 통해 원하는 로거 및 로그 포맷터를 구성하지만 로그 메시지 작성은 Swift-Log의 Logger 사용하여 수행됩니다.
자신의 로그 포맷터에서는 DDLogMessage 의 swiftLogInfo 속성을 사용하여 Swift-Log를 통해 로그인 한 메시지의 세부 사항을 검색 할 수 있습니다.
Cocoalumberjack과 함께 Swift-Log를 사용하려면 다음 코드 스 니펫을 살펴보고 시작하는 방법을 확인하십시오.
import CocoaLumberjack
import CocoaLumberjackSwiftLogBackend
import Logging
// In your application's entry point (e.g. AppDelegate):
DDLog . add ( DDOSLogger . sharedInstance ) // Configure loggers
LoggingSystem . bootstrapWithCocoaLumberjack ( ) // Use CocoaLumberjack as swift-log backendLog4J와 같은 다른 인기있는 로깅 프레임 워크와 개념이 유사하지만 Objective-C를 위해 특별히 설계되었으며 멀티 스레딩, 그랜드 센트럴 디스패치 (사용 가능한 경우), 잠금식 원자 운영 및 목표 C 런타임의 동적 특성과 같은 기능을 활용합니다.
대부분의 경우 NSLOG보다 빠른 순서입니다.
애플리케이션이 시작될 때 Lumberjack을 구성하는 데 단일 한 줄의 코드가 필요합니다. 그런 다음 NSLOG 문을 DDLOG 문으로 바꾸면됩니다. (그리고 DDLOG 매크로는 NSLOG와 동일한 형식과 구문을 가지고 있으므로 매우 쉽습니다.)
하나의 로그 문을 여러 로거로 전송할 수 있습니다. 즉, 파일과 콘솔에 동시에 로그인 할 수 있습니다. 더 원하십니까? 자신의 로거를 만들고 (쉽습니다) 네트워크를 통해 로그 문을 보내십시오. 또는 데이터베이스 또는 분산 파일 시스템에. 하늘은 한계입니다.
원하는대로 로깅을 구성하십시오. 파일 당 로그 레벨을 변경합니다 (디버깅에 적합). 로거 당 로그 레벨을 변경합니다 (Verbose Console이지만 간결한 로그 파일). Xcode 구성당 로그 레벨을 변경합니다 (Verbose Debug,하지만 간결한 릴리스). 릴리스 빌드에서 로그 명령문을 작성하십시오. 응용 프로그램의 로그 레벨 수를 사용자 정의하십시오. 자신의 세밀한 벌목을 추가하십시오. 런타임 동안 로그 레벨을 동적으로 변경합니다. 로그 파일을 롤링하려는 방법과시기를 선택하십시오. 로그 파일을 중앙 서버에 업로드하십시오. 아카이브 된 로그 파일을 압축하여 디스크 공간을 저장합니다 ...
Lumberjack의 현재 버전에는 다음이 필요합니다.
앱 스토어의 앱 개인 정보 보호 세부 정보에 따라 Apple은 앱 개발자에게 데이터 수집에 대한 정보를 제공하도록 요청하고 있으며, 미국 SDK 관리자는 동일한 데이터를 제공해야합니다.
기본적으로 Cocoalumberjack은 자체적으로 데이터를 수집하지 않습니다.
데이터 수집 관행 목록을 참조하십시오.
Cocoalumberjack은 로깅 프레임 워크로 해당 로그를 다른 플랫폼으로 쉽게 보낼 수 있습니다.
앱 개발자가 민감한 데이터를 로그 메시지에 포함 시키면 데이터 수집이 매우 쉽게 발생할 수 있습니다.
중요 참고 사항 : 앱 개발자는 로깅 시스템을 통해 수집 된 민감한 데이터에 대해 전적으로 책임을집니다!
결과적으로, 귀하는 Apple의 개인 정보 보호 세부 사항 정책 (위에서 언급)을 준수하고 사용자 데이터가 수집되는 방법을 문서화해야합니다. Cocoalumberjack을 통해 데이터가 간접적으로 수집 될 수있는 시나리오가 상당히 크기 때문에 앱 개발자로서 앱의 코드를 올바르게 검토하고 해당 사례를 식별하는 것은 귀하에게 달려 있습니다. 우리가 도울 수있는 일은 프레임 워크를 통해 잠재적 데이터 수집에 대한 인식을 높이는 것입니다.
개인 데이터에는 다음이 포함되지만 다음에는 제한되지 않습니다.
예 : DDLogInfo("User: (myUser)") myUser 정보를 로그에 추가하므로 제 3 자에게 전달되거나 이메일을 통해 전송되면 데이터 수집 자격이 될 수 있습니다.