成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS開源項目之日志框架CocoaLumberjack

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

[[111902]]

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

快速

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

簡單

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

強大

一個日志語句可以被發送到多個logger,意味著你可以同時記錄文件和控制臺。此外,還可以創建自己的logger,將日志語句發送到網絡、數據庫或者分布式文件系統中。沒有任何限制。

靈活性

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

當你遇到一下情況是,你可以選擇Lumberjack框架:

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

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

3.出于支持系統和穩定性的需要,你想將應用程序升級到下一級別;

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

如何開始使用Lumberjack框架

開始

三步開始使用CocoaLumberjack框架:

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

2.配置框架;

3.將NSLog指令轉換為使用Lumberjack宏指令;

把Lumberjack框架添加到你的項目

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

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

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

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

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

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

配置框架

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

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

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

這將在你的日志框架中添加兩個“logger”。也就是說你的日志語句將被發送到Console.app和Xcode控制 臺(就像標準的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]; 

上面的代碼告訴應用程序要在系統上保持一周的日志文件。

用DDLog替換NSLog語句

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

  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

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

當然選擇哪個NSLog語句取決于你的消息的嚴重程度。

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

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

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

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

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

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

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

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

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

以下是如何轉換你的日志語句:

  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語句都將編譯到你的項目中。

自動引用計數(ARC)

***版本的Lumberjack使用ARC。如果你的項目沒有使用ARC,你可以在ARC頁面學習如何在Xcode中像ARC一樣正確地標記Lumberjack文件。

更多關于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

責任編輯:閆佳明 來源: cocoachina
相關推薦

2021-06-02 06:02:50

Loki 源碼分析日志

2011-02-22 16:23:20

VSFTPD

2011-08-18 11:10:49

Core Plot框架IOS開發

2011-08-15 11:31:27

iPhone開發日志

2014-01-07 17:08:02

Java開源框架

2013-07-24 18:22:02

iOS開發學習iOS開源框架和類

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框架開源

2019-03-01 08:57:47

iOScoobjc協程

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

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 羞羞视频免费观 | 一区二区久久精品 | 免费黄色的视频 | 少妇一区在线观看 | 日本高清视频在线播放 | 网络毛片| 亚洲欧洲在线观看视频 | 少妇精品亚洲一区二区成人 | 91精品久久久久久久久中文字幕 | av中文网 | 亚洲精品视频在线播放 | 亚洲日本欧美日韩高观看 | 成人av网站在线观看 | 性色av一区二区三区 | 欧美国产精品一区二区三区 | 国产成人一区二区三区 | 国产日韩欧美一区二区 | 精品一二区| 一区二区三区四区在线视频 | 亚洲综合免费 | 亚洲一区成人 | 精品视频一区二区三区在线观看 | 亚洲免费高清 | 在线观看毛片网站 | 亚洲人在线播放 | 日韩国产免费观看 | 黄视频网站在线 | 国产精品成人一区二区三区 | 欧美日批 | 国产精品一区一区 | 日韩欧美在线观看 | 精品99久久久久久 | 国产精品久久久久久吹潮 | 亚洲欧美日韩一区 | 亚洲一区国产精品 | 午夜私人影院在线观看 | 蜜桃臀av一区二区三区 | 日韩综合网 | 99精品亚洲国产精品久久不卡 | 毛片a级 | 色香婷婷 |