Cocoalumberjack เป็นเฟรมเวิร์กการบันทึกที่รวดเร็วและรวดเร็ว แต่ทรงพลังและยืดหยุ่นสำหรับ MacOS, iOS, TVOS, WatchOs และ Visionos
ก่อนอื่นให้ติดตั้ง Cocoalumberjack ผ่าน Cocoapods, Carthage, Swift Package Manager หรือด้วยตนเอง จากนั้นใช้ DDOSLogger สำหรับ iOS 10 และใหม่กว่าหรือ DDTTYLogger และ DDASLLogger สำหรับเวอร์ชันก่อนหน้าเพื่อเริ่มบันทึกข้อความ
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end หมายเหตุ: Swift เป็น subspec ซึ่งจะรวมถึงรหัส OBJ-C ทั้งหมดบวกกับ Swift หนึ่งดังนั้นนี่ก็เพียงพอแล้ว สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ Swift กับ Lumberjack ดูบทสนทนานี้
สำหรับ Objective-C ใช้สิ่งต่อไปนี้:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endคาร์เธจเป็นตัวจัดการการพึ่งพาน้ำหนักเบาสำหรับ Swift และ Objective-C มันใช้ประโยชน์จากโมดูล cocoatouch และมีการรุกรานน้อยกว่า cocoapods
หากต้องการติดตั้งด้วย Carthage ให้ทำตามคำแนะนำเกี่ยวกับ Carthage
Cartfile
github "CocoaLumberjack/CocoaLumberjack"
ในฐานะของ Cocoalumberjack 3.6.0 คุณสามารถใช้ Swift Package Manager เป็นวิธีการรวม หากคุณต้องการใช้ Swift Package Manager เป็นวิธีการรวมให้ใช้ Xcode เพื่อเพิ่มการพึ่งพาแพ็คเกจหรือเพิ่มการพึ่งพาต่อไปนี้ใน package.swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , โปรดทราบว่าคุณอาจต้องเพิ่มทั้งผลิตภัณฑ์ CocoaLumberjack และ CocoaLumberjackSwift ไปยังเป้าหมายของคุณเนื่องจาก SPM บางครั้งไม่สามารถตรวจพบ CocoaLumberjackSwift ขึ้นอยู่กับ CocoaLumberjack
หากคุณต้องการติดตั้ง Cocoalumberjack ด้วยตนเองอ่านคู่มือการติดตั้งด้วยตนเองสำหรับข้อมูลเพิ่มเติม
โดยปกติคุณสามารถ import CocoaLumberjackSwift ได้ หากคุณติดตั้ง cocoalumberjack โดยใช้ cocoapods คุณต้องใช้ 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 เข้ากับ 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 ไปยัง Flags อื่น ๆ / อื่น ๆ ในโครงการ Xcode ของคุณ
Cocoalumberjack ยังจัดส่งแบ็กเอนด์สำหรับ Swift-log เพียงเพิ่ม Cocoalumberjack เป็นการพึ่งพาเป้าหมาย SPM ของคุณ (ดูด้านบน) และเพิ่มผลิตภัณฑ์ CocoaLumberjackSwiftLogBackend เป็นการพึ่งพาเป้าหมายของคุณ
จากนั้นคุณสามารถใช้ DDLogHandler เป็นแบ็กเอนด์สำหรับ Swift-log ซึ่งจะส่งต่อข้อความทั้งหมดไปยัง DDLog ของ Cocoalumberjack คุณจะยังคงกำหนดค่าตัวบันทึกและบันทึกการบันทึกที่คุณต้องการผ่าน DDLog แต่การเขียนข้อความบันทึกจะทำโดยใช้ Logger จาก Swift-log
ใน Formatters บันทึกของคุณเองคุณสามารถใช้ประโยชน์จากคุณสมบัติ swiftLogInfo บน DDLogMessage เพื่อดึงรายละเอียดของข้อความที่บันทึกผ่าน Swift-log
หากต้องการใช้ Swift-log กับ Cocoalumberjack ลองดูตัวอย่างโค้ดต่อไปนี้เพื่อดูวิธีเริ่มต้น
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 (ถ้ามี), การดำเนินการอะตอมแบบไร้ล็อค
ในกรณีส่วนใหญ่มันเป็นลำดับของขนาดเร็วกว่า nslog
ใช้เวลาเพียงบรรทัดเดียวในการกำหนดค่า Lumberjack เมื่อแอปพลิเคชันของคุณเปิดตัว จากนั้นเพียงแทนที่คำสั่ง NSLOG ของคุณด้วยคำสั่ง DDLOG และนั่นก็เกี่ยวกับมัน (และแมโคร ddlog มีรูปแบบและไวยากรณ์ที่แน่นอนเช่นเดียวกับ nslog ดังนั้นจึงเป็นเรื่องง่ายสุด ๆ )
คำสั่งบันทึกหนึ่งสามารถส่งไปยังตัวบันทึกหลายตัวซึ่งหมายความว่าคุณสามารถบันทึกไปยังไฟล์และคอนโซลพร้อมกัน ต้องการมากขึ้น? สร้างตัวบันทึกของคุณเอง (ง่าย) และส่งคำสั่งบันทึกของคุณผ่านเครือข่าย หรือไปยังฐานข้อมูลหรือระบบไฟล์แบบกระจาย ท้องฟ้าเป็นขีด จำกัด
กำหนดค่าการบันทึกของคุณตามที่คุณต้องการ เปลี่ยนระดับบันทึกต่อไฟล์ (สมบูรณ์แบบสำหรับการดีบัก) เปลี่ยนระดับบันทึกต่อ Logger (Verbose Console แต่ไฟล์บันทึกที่กระชับ) เปลี่ยนระดับบันทึกต่อการกำหนดค่า XCODE (verbose debug แต่รีลีสโดยย่อ) มีคำสั่งบันทึกของคุณที่รวบรวมจากการสร้างรุ่น ปรับแต่งจำนวนระดับบันทึกสำหรับแอปพลิเคชันของคุณ เพิ่มการบันทึกอย่างละเอียดของคุณเอง เปลี่ยนระดับบันทึกแบบไดนามิกในระหว่างการรันไทม์ เลือกวิธีและเมื่อคุณต้องการให้ไฟล์บันทึกของคุณถูกรีด อัปโหลดไฟล์บันทึกของคุณไปยังเซิร์ฟเวอร์กลาง บีบอัดไฟล์บันทึกที่เก็บถาวรเพื่อบันทึกพื้นที่ดิสก์ ...
Lumberjack เวอร์ชันปัจจุบันต้องการ:
ต่อรายละเอียดความเป็นส่วนตัวของแอพใน App Store Apple กำลังขอให้นักพัฒนาแอปให้ข้อมูลเกี่ยวกับการรวบรวมข้อมูลของพวกเขาผู้ดูแลระบบ SDK ของสหรัฐอเมริกาจะต้องให้ข้อมูลเดียวกันแก่พวกเขา
โดยค่าเริ่มต้น Cocoalumberjack ไม่ได้รวบรวมข้อมูลใด ๆ ด้วยตัวเอง
ดูรายการแนวทางการรวบรวมข้อมูลของเรา
Cocoalumberjack เป็นกรอบการบันทึกซึ่งทำให้ง่ายต่อการส่งบันทึกเหล่านั้นไปยังแพลตฟอร์มที่แตกต่างกัน
นี่คือเหตุผลที่การรวบรวมข้อมูลอาจเกิดขึ้นได้อย่างง่ายดายหากนักพัฒนาแอปรวมข้อมูลที่ละเอียดอ่อนไว้ในข้อความบันทึกของพวกเขา
หมายเหตุสำคัญ: นักพัฒนาแอพมีความรับผิดชอบอย่างเต็มที่ต่อข้อมูลที่ละเอียดอ่อนใด ๆ ที่รวบรวมผ่านระบบการบันทึกของเรา!
ด้วยเหตุนี้คุณต้องปฏิบัติตามนโยบายรายละเอียดความเป็นส่วนตัวของ Apple (ดังกล่าวข้างต้น) และจัดทำเอกสารวิธีการรวบรวมข้อมูลผู้ใช้ เนื่องจากจำนวนสถานการณ์ที่ข้อมูลอาจถูกรวบรวมทางอ้อมผ่าน Cocoalumberjack ค่อนข้างใหญ่ขึ้นอยู่กับคุณในฐานะนักพัฒนาแอพเพื่อตรวจสอบรหัสแอปของคุณอย่างถูกต้องและระบุกรณีเหล่านั้น สิ่งที่เราสามารถทำได้เพื่อช่วยคือสร้างความตระหนักเกี่ยวกับการรวบรวมข้อมูลที่เป็นไปได้ผ่านกรอบของเรา
ข้อมูลส่วนตัวรวมถึง แต่ไม่ จำกัด เพียง:
ตัวอย่าง : DDLogInfo("User: (myUser)") จะเพิ่มข้อมูล myUser ลงในบันทึกดังนั้นหากสิ่งเหล่านั้นถูกส่งต่อไปยังบุคคลที่สามหรือส่งทางอีเมลซึ่งอาจมีสิทธิ์ได้รับการรวบรวมข้อมูล