偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iOS開(kāi)源項(xiàng)目之日志框架CocoaLumberjack

移動(dòng)開(kāi)發(fā) iOS
CocoaLumberjack是Mac和iOS上一個(gè)集快捷、簡(jiǎn)單、強(qiáng)大和靈活于一身的日志框架。CocoaLumberjack類(lèi)似于流行 的日志框架(如log4j),但它是專(zhuān)為Objective-C設(shè)計(jì)的,利用了多線程、GCD(如果可用)、無(wú)鎖原子操作Objective-C運(yùn)行時(shí)的 動(dòng)態(tài)特性。

[[111902]]

CocoaLumberjack是Mac和iOS上一個(gè)集快捷、簡(jiǎn)單、強(qiáng)大和靈活于一身的日志框架。CocoaLumberjack類(lèi)似于流行 的日志框架(如log4j),但它是專(zhuān)為Objective-C設(shè)計(jì)的,利用了多線程、GCD(如果可用)、無(wú)鎖原子操作Objective-C運(yùn)行時(shí)的 動(dòng)態(tài)特性。

快速

在大多數(shù)用例中,Lumberjack比NSLog快了一個(gè)數(shù)量級(jí)。

簡(jiǎn)單

當(dāng)應(yīng)用程序啟動(dòng)時(shí),只需一行加單的代碼就可配置Lumberjack。然后用DDLog語(yǔ)句簡(jiǎn)單地取代NSLog語(yǔ)句。 并且DDLog宏與NSLog的有完全相同的格式和語(yǔ)法,所以超級(jí)簡(jiǎn)單。

強(qiáng)大

一個(gè)日志語(yǔ)句可以被發(fā)送到多個(gè)logger,意味著你可以同時(shí)記錄文件和控制臺(tái)。此外,還可以創(chuàng)建自己的logger,將日志語(yǔ)句發(fā)送到網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)或者分布式文件系統(tǒng)中。沒(méi)有任何限制。

靈活性

配置你自己想要的日志框架。修改每個(gè)文件的日志級(jí)別(尤其是測(cè)試時(shí))。修改每個(gè)logger的日志級(jí) 別(詳細(xì)的控制臺(tái),但是簡(jiǎn)潔的日志文件)。修改每個(gè)Xcode配置的日志級(jí)別。為你的應(yīng)用程序定制日志級(jí)別的數(shù)量。添加自己的精細(xì)的日志。在運(yùn)行時(shí)動(dòng)態(tài)修 改日志級(jí)別。 選擇如何以及何時(shí)回滾你的日志文件。將日志文件上傳至中心服務(wù)器。壓縮存檔日志文件來(lái)節(jié)省硬盤(pán)空間。

當(dāng)你遇到一下情況是,你可以選擇Lumberjack框架:

1.你想找到一種方式來(lái)跟蹤在程序中不斷出現(xiàn)的***的bug;

2.你對(duì)iPhone上的簡(jiǎn)短日志感到很失望;

3.出于支持系統(tǒng)和穩(wěn)定性的需要,你想將應(yīng)用程序升級(jí)到下一級(jí)別;

4.為你的應(yīng)用程序(Mac或者iPhone)尋找企業(yè)級(jí)的日志解決方案。

如何開(kāi)始使用Lumberjack框架

開(kāi)始

三步開(kāi)始使用CocoaLumberjack框架:

1.將Lumberjack文件添加到你的項(xiàng)目中;

2.配置框架;

3.將NSLog指令轉(zhuǎn)換為使用Lumberjack宏指令;

把Lumberjack框架添加到你的項(xiàng)目

需要添加的主要文件有四個(gè):

1.@DDLog(整個(gè)框架的基礎(chǔ))

2.@DDASLLogger(發(fā)送日志語(yǔ)句到蘋(píng)果的日志系統(tǒng),以便它們顯示在Console.app上)

3.@DDTTYLoyger(發(fā)送日志語(yǔ)句到Xcode控制臺(tái),如果可用)

4.@DDFIleLoger(把日志語(yǔ)句發(fā)送至文件)

DDLog是強(qiáng)制性的,其余的都是可選的,這取決于你打算如何使用這個(gè)框架。例如,如果你不打算紀(jì)錄到一個(gè)文件,你可以跳過(guò)DDFileLogger,或者你想跳過(guò)ASL以便更快的文件記錄,你可以跳過(guò)DDASLLoger。

配置框架

首先,你想要在你的應(yīng)用程序中配置這個(gè)日志框架,通常在applicationDidFinishLaunching方法中配置。

開(kāi)始時(shí),你需要下面兩行代碼:

  1. [DDLog addLogger:[DDASLLogger sharedInstance]]; 
  2. [DDLog addLogger:[DDTTYLogger sharedInstance]]; 

這將在你的日志框架中添加兩個(gè)“logger”。也就是說(shuō)你的日志語(yǔ)句將被發(fā)送到Console.app和Xcode控制 臺(tái)(就像標(biāo)準(zhǔn)的NSLog)

這個(gè)框架的好處之一就是它的靈活性,如果你還想要你的日志語(yǔ)句寫(xiě)入到一個(gè)文件中,你可以添加和配置一個(gè)file logger:

  1. fileLogger = [[DDFileLogger alloc] init]; 
  2. fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling 
  3. fileLogger.logFileManager.maximumNumberOfLogFiles = 7; 
  4.  
  5. [DDLog addLogger:fileLogger]; 

上面的代碼告訴應(yīng)用程序要在系統(tǒng)上保持一周的日志文件。

用DDLog替換NSLog語(yǔ)句

DDLog的頭文件定義了你用來(lái)替換NSLog語(yǔ)句的宏,本質(zhì)上看起來(lái)向下邊這樣:

  1. // Convert from this: 
  2. NSLog(@"Broken sprocket detected!"); 
  3. NSLog(@"User selected file:%@ withSize:%u", filePath, fileSize); 
  4.  
  5. // To this: 
  6. DDLogError(@"Broken sprocket detected!"); 
  7. DDLogVerbose(@"User selected file:%@ withSize:%u", filePath, fileSize); 

我們看到DDLog宏和NSLog的語(yǔ)法完全相同。

所以你所要做的就是決定每個(gè)NSlog語(yǔ)句屬于哪種日志級(jí)別。DDLog默認(rèn)有四種級(jí)別的日志,分別是:

1.@DDlogError

2.@DDlogWarn

3.@DDlogInfo

4.@DDlogVerbose

注意:你也可以自定義級(jí)別以及級(jí)別名或者添加更精細(xì)的控制來(lái)代替系統(tǒng)四個(gè)簡(jiǎn)單的等級(jí)。)

當(dāng)然選擇哪個(gè)NSLog語(yǔ)句取決于你的消息的嚴(yán)重程度。

下面的這些不同的日志等級(jí)也許正有你所需要的:

1.如果你將日志級(jí)別設(shè)置為 LOG_LEVEL_ERROR,那么你只會(huì)看到DDlogError語(yǔ)句。

2.如果你將日志級(jí)別設(shè)置為L(zhǎng)OG_LEVEL_WARN,那么你只會(huì)看到DDLogError和DDLogWarn語(yǔ)句。

3.如果您將日志級(jí)別設(shè)置為 LOG_LEVEL_INFO,那么你會(huì)看到error、Warn和Info語(yǔ)句。

4.如果您將日志級(jí)別設(shè)置為L(zhǎng)OG_LEVEL_VERBOSE,那么你會(huì)看到所有DDLog語(yǔ)句。

5.如果您將日志級(jí)別設(shè)置為 LOG_LEVEL_OFF,你將不會(huì)看到任何DDLog語(yǔ)句。

那么我在哪里設(shè)置日志級(jí)別呢,在整個(gè)項(xiàng)目中我只能使用一個(gè)日志級(jí)別嗎?

當(dāng)然不是,我們都知道正如調(diào)試或者添加新特性,如果你想詳細(xì)紀(jì)錄目前正在做的那部分,Lumberjack框 架提供了對(duì)每個(gè)文件的調(diào)試控制,你僅可以修改編輯中的文件的日志級(jí)別。

(注釋?zhuān)?/span>當(dāng)然還有許多其他高級(jí)選項(xiàng),比如全球日志級(jí)別,Xcode的每個(gè)配置級(jí)別,每個(gè)logger級(jí)別等,我們將在另一篇文章中講到)。

以下是如何轉(zhuǎn)換你的日志語(yǔ)句:

  1. // CONVERT FROM THIS 
  2.  
  3. #import "Sprocket.h" 
  4.  
  5. @implementation Sprocket 
  6.  
  7. - (void)someMethod 
  8.     NSLog(@"Meet George Jetson"); 
  9.  
  10. @end 
  11.  
  12. // TO THIS 
  13.  
  14. #import "Sprocket.h" 
  15. #import "DDLog.h" 
  16.  
  17. static const int ddLogLevel = LOG_LEVEL_VERBOSE; 
  18.  
  19. @implementation Sprocket 
  20.  
  21. - (void)someMethod 
  22.     DDLogVerbose(@"Meet George Jetson"); 
  23.  
  24. @end 

注意日志級(jí)別聲明為常量,這意味著這意味著日志級(jí)別閾值以上的DDLog語(yǔ)句都將編譯到你的項(xiàng)目中。

自動(dòng)引用計(jì)數(shù)(ARC)

***版本的Lumberjack使用ARC。如果你的項(xiàng)目沒(méi)有使用ARC,你可以在ARC頁(yè)面學(xué)習(xí)如何在Xcode中像ARC一樣正確地標(biāo)記Lumberjack文件。

更多關(guān)于Lumberjack:

Automatically use different log levels for your debug vs release builds

Tailor the log levels to suite your needs

Filter logs based on logger settings

Write your own custom formatters

Write your own custom loggers

And more...

原文:CocoaLumberjack

責(zé)任編輯:閆佳明 來(lái)源: cocoachina
相關(guān)推薦

2021-06-02 06:02:50

Loki 源碼分析日志

2011-02-22 16:23:20

VSFTPD

2011-08-18 11:10:49

Core Plot框架IOS開(kāi)發(fā)

2011-08-15 11:31:27

iPhone開(kāi)發(fā)日志

2014-01-07 17:08:02

Java開(kāi)源框架

2013-07-24 18:22:02

iOS開(kāi)發(fā)學(xué)習(xí)iOS開(kāi)源框架和類(lèi)

2013-09-12 15:51:56

2010-09-14 10:46:59

2015-06-24 10:17:24

UI流式布局

2010-06-11 17:10:02

Java框架開(kāi)源

2019-03-01 08:57:47

iOScoobjc協(xié)程

2024-09-18 06:20:00

2010-08-11 13:17:07

Flex框架

2010-08-05 14:03:32

Flex框架

2011-04-21 10:59:44

SimpleFrameWeb

2023-12-05 07:21:17

IstioEnvoy

2024-05-06 12:52:30

2024-11-21 08:09:51

2013-07-05 11:07:30

2024-07-29 09:46:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)