Cocoalumberjack是MACOS,iOS,TVOS,WatchOS和Visionos的快速,簡單,功能強大且靈活的伐木框架。
首先,通過Cocoapods,迦太基,Swift軟件包管理器或手動安裝Cocoalumberjack。然後,將iOS 10及以後的DDOSLogger使用,或DDTTYLogger和DDASLLogger用於早期版本開始記錄消息。
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end注意: Swift是一個亞種,它將包含所有OBJ-C代碼以及Swift的代碼,因此足夠了。有關如何將Swift與Lumberjack一起使用的更多詳細信息,請參閱此對話。
用於目標-C使用以下內容:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
end迦太基是Swift and Objective-C的輕量級依賴經理。它利用了Cocoatouch模塊,並且不如Cocoapods侵入性。
要與迦太基安裝,請按照迦太基的說明
卡特菲爾
github "CocoaLumberjack/CocoaLumberjack"
從Cocoalumberjack 3.6.0開始,您可以將Swift軟件包管理器用作集成方法。如果要使用Swift Package Manager作為集成方法,請使用XCode添加軟件包依賴項或將以下依賴項添加到您的軟件包。 Swift:
. 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 " )如果您將伐木工人用作框架,則可以@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 " );當將伐木工人集成到現有的Objective-C中時,可以將其插入Multiple methods named 'tag' found with mismatched result, parameter type or attributes 。
添加#define DD_LEGACY_MESSAGE_TAG 0在導入Cocoalumberjack或添加#define DD_LEGACY_MESSAGE_TAG 0或添加-DDD_LEGACY_MESSAGE_TAG=0中xcode Project中的其他c flags /其他_cflags 。
Cocoalumberjack還使用Swift-Log的後端實施來運輸。只需將Cocoalumberjack作為SPM目標的依賴性添加(請參見上文),也將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 backend它的概念與其他流行的記錄框架(例如Log4J)相似,但是專門為Objective-C設計的,並利用了諸如多線程,Grand Central Dispatch(如果可用),無鎖原子操作以及Objective-C運行時的動態性質等功能。
在大多數情況下,它的數量級比NSLOG快。
在您的應用程序啟動時,它只需要一行即可配置Lumberjack。然後,只需用ddlog語句替換您的NSlog語句,僅此而已。 (並且ddlog宏具有與NSlog完全相同的格式和語法,因此非常容易。)
一個日誌語句可以發送到多個記錄器,這意味著您可以同時登錄到文件和控制台。想要更多嗎?創建自己的記錄儀(很容易),然後通過網絡發送日誌語句。或到數據庫或分佈式文件系統。天空是極限。
根據需要配置您的記錄。更改每個文件的日誌級別(非常適合調試)。更改每個記錄器的日誌級別(冗長的控制台,但簡潔的日誌文件)。每XCode配置更改日誌級別(詳細的釋放,但簡潔的發行版)。將您的日誌語句從發布構建中匯總出來。自定義應用程序的日誌級別數量。添加您自己的細粒度記錄。在運行時動態更改日誌級別。選擇如何和何時滾動日誌文件。將日誌文件上傳到中央服務器。壓縮存檔的日誌文件以保存磁盤空間...
當前版本的伐木工人需要:
根據應用程序商店的應用隱私詳細信息,Apple要求應用程序開發人員提供有關其數據收集的信息,美國SDK維護者必須為其提供相同的數據。
默認情況下,Cocoalumberjack不會自行收集任何數據。
請參閱我們的數據收集實踐列表。
Cocoalumberjack是一個記錄框架,可以輕鬆將這些日誌發送到不同的平台。
這就是為什麼如果應用程序開發人員將任何敏感數據包含在其日誌消息中,則收集數據可能很容易發生。
重要說明:應用程序開發人員對通過我們的記錄系統收集的任何敏感數據完全負責!
因此,您必須遵守Apple的隱私詳細信息策略(如上所述),並記錄收集用戶數據的方式。由於可以通過可可菌Jack間接收集數據的方案數量很大,因此作為應用程序開發人員,您可以正確查看您的應用程序代碼並確定這些情況。我們可以做的幫助是通過我們的框架提高人們對潛在數據收集的認識。
私人數據包括但不限於:
示例: DDLogInfo("User: (myUser)")將將myUser信息添加到日誌中,因此,如果將這些信息轉發到第三方或通過電子郵件發送,則可能有資格作為數據收集。