//
//  HCLogger.h
//  HCLogger
//
//  Created by ChenYuanfu on 2018/4/27.
//  Copyright © 2018年 ZeroZero. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <CocoaLumberjack/CocoaLumberjack.h>
#import "HCLogFormatter.h"

@interface HCLogger : NSObject

+ (instancetype)sharedLogger;

#pragma mark - Log

// Release/Debug mode will log content into file.
- (void)file:(NSString *)frmt, ...;

// Release/Debug mode will log content into file.
- (void)error:(NSString *)frmt, ...;

// Debug mode will log content into file.
- (void)warn:(NSString *)frmt, ...;

// Debug mode will log content into file.
- (void)info:(NSString *)frmt, ...;

// Debug mode will log content into file.
- (void)debug:(NSString *)frmt, ...;

#pragma mark - Configuration

// Default is 1Day
@property (nonatomic, assign) NSTimeInterval rollingFrequency;

// Defalut is 5MB
@property (nonatomic, assign) unsigned long long maximumFileSize;

// Defalut is 20
@property (nonatomic, assign) NSUInteger maximumNumberOfLogFiles;

#pragma mark - File managing.

// 配置 logger
- (void)setupLoggers;

// 生成 log file 文件
- (void)rollLogFileWithCompletionBlock:(void (^)(void))completionBlock;

// 加载所有 log file info
- (NSArray <DDLogFileInfo *>*)sortedLogFileIofos;

@end
