自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS開源項目之日志框架CocoaLumberjack

移動開發(fā) iOS
CocoaLumberjack是Mac和iOS上一個集快捷、簡單、強大和靈活于一身的日志框架。CocoaLumberjack類似于流行 的日志框架(如log4j),但它是專為Objective-C設(shè)計的,利用了多線程、GCD(如果可用)、無鎖原子操作Objective-C運行時的 動態(tài)特性。

[[111902]]

CocoaLumberjack是Mac和iOS上一個集快捷、簡單、強大和靈活于一身的日志框架。CocoaLumberjack類似于流行 的日志框架(如log4j),但它是專為Objective-C設(shè)計的,利用了多線程、GCD(如果可用)、無鎖原子操作Objective-C運行時的 動態(tài)特性。

快速

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

簡單

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

強大

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

靈活性

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

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

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

2.你對iPhone上的簡短日志感到很失望;

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

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

如何開始使用Lumberjack框架

開始

三步開始使用CocoaLumberjack框架:

1.將Lumberjack文件添加到你的項目中;

2.配置框架;

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

把Lumberjack框架添加到你的項目

需要添加的主要文件有四個:

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

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

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

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

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

配置框架

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

開始時,你需要下面兩行代碼:

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

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

這個框架的好處之一就是它的靈活性,如果你還想要你的日志語句寫入到一個文件中,你可以添加和配置一個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語句

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

  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的語法完全相同。

所以你所要做的就是決定每個NSlog語句屬于哪種日志級別。DDLog默認有四種級別的日志,分別是:

1.@DDlogError

2.@DDlogWarn

3.@DDlogInfo

4.@DDlogVerbose

注意:你也可以自定義級別以及級別名或者添加更精細的控制來代替系統(tǒng)四個簡單的等級。)

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

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

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

2.如果你將日志級別設(shè)置為LOG_LEVEL_WARN,那么你只會看到DDLogError和DDLogWarn語句。

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

4.如果您將日志級別設(shè)置為LOG_LEVEL_VERBOSE,那么你會看到所有DDLog語句。

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

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

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

(注釋:當(dāng)然還有許多其他高級選項,比如全球日志級別,Xcode的每個配置級別,每個logger級別等,我們將在另一篇文章中講到)。

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

  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 

注意日志級別聲明為常量,這意味著這意味著日志級別閾值以上的DDLog語句都將編譯到你的項目中。

自動引用計數(shù)(ARC)

***版本的Lumberjack使用ARC。如果你的項目沒有使用ARC,你可以在ARC頁面學(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é)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2021-06-02 06:02:50

Loki 源碼分析日志

2011-02-22 16:23:20

VSFTPD

2011-08-15 11:31:27

iPhone開發(fā)日志

2011-08-18 11:10:49

Core Plot框架IOS開發(fā)

2014-01-07 17:08:02

Java開源框架

2013-07-24 18:22:02

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

2010-09-14 10:46:59

2013-09-12 15:51:56

2015-06-24 10:17:24

UI流式布局

2010-06-11 17:10:02

Java框架開源

2019-03-01 08:57:47

iOScoobjc協(xié)程

2024-09-18 06:20:00

2023-12-05 07:21:17

IstioEnvoy

2010-08-11 13:17:07

Flex框架

2013-07-05 11:07:30

2024-05-06 12:52:30

2024-11-21 08:09:51

2010-08-05 14:03:32

Flex框架

2011-04-21 10:59:44

SimpleFrameWeb

2024-07-29 09:46:00

點贊
收藏

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