BuglyLog.h 2.41 KB
Newer Older
1 2 3
//
//  BuglyLog.h
//
曹云霄's avatar
曹云霄 committed
4
//  Copyright © 2017 tencent.com. All rights reserved.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//

#import <Foundation/Foundation.h>

// Log level for Bugly Log
typedef NS_ENUM(NSUInteger, BuglyLogLevel) {
    BuglyLogLevelSilent  = 0,
    BuglyLogLevelError   = 1,
    BuglyLogLevelWarn    = 2,
    BuglyLogLevelInfo    = 3,
    BuglyLogLevelDebug   = 4,
    BuglyLogLevelVerbose = 5,
};
#pragma mark -

曹云霄's avatar
曹云霄 committed
20
OBJC_EXTERN void BLYLog(BuglyLogLevel level, NSString *format, ...) NS_FORMAT_FUNCTION(2, 3);
21

曹云霄's avatar
曹云霄 committed
22
OBJC_EXTERN void BLYLogv(BuglyLogLevel level, NSString *format, va_list args) NS_FORMAT_FUNCTION(2, 0);
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

#pragma mark -
#define BUGLY_LOG_MACRO(_level, fmt, ...) [BuglyLog level:_level tag:nil log:fmt, ##__VA_ARGS__]

#define BLYLogError(fmt, ...)   BUGLY_LOG_MACRO(BuglyLogLevelError, fmt, ##__VA_ARGS__)
#define BLYLogWarn(fmt, ...)    BUGLY_LOG_MACRO(BuglyLogLevelWarn,  fmt, ##__VA_ARGS__)
#define BLYLogInfo(fmt, ...)    BUGLY_LOG_MACRO(BuglyLogLevelInfo, fmt, ##__VA_ARGS__)
#define BLYLogDebug(fmt, ...)   BUGLY_LOG_MACRO(BuglyLogLevelDebug, fmt, ##__VA_ARGS__)
#define BLYLogVerbose(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelVerbose, fmt, ##__VA_ARGS__)

#pragma mark - Interface
@interface BuglyLog : NSObject

/**
 *    @brief  初始化日志模块
 *
 *    @param level 设置默认日志级别,默认BLYLogLevelSilent
 *
 *    @param printConsole 是否打印到控制台,默认NO
 */
曹云霄's avatar
曹云霄 committed
43
+ (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL)printConsole;
44 45 46 47 48 49

/**
 *    @brief 打印BLYLogLevelInfo日志
 *
 *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
 */
曹云霄's avatar
曹云霄 committed
50
+ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

/**
 *    @brief  打印日志
 *
 *    @param level 日志级别
 *    @param message   日志内容 总日志大小限制为:字符串长度30k,条数200
 */
+ (void)level:(BuglyLogLevel) level logs:(NSString *)message;

/**
 *    @brief  打印日志
 *
 *    @param level 日志级别
 *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
 */
曹云霄's avatar
曹云霄 committed
66
+ (void)level:(BuglyLogLevel) level log:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3);
67 68 69 70 71 72 73 74

/**
 *    @brief  打印日志
 *
 *    @param level  日志级别
 *    @param tag    日志模块分类
 *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
 */
曹云霄's avatar
曹云霄 committed
75
+ (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ... NS_FORMAT_FUNCTION(3, 4);
76 77

@end