//
// RNHSCoreLogger.h
// Created for HelpshiftX in 2020
// Copyright © 2020 Helpshift. All rights reserved.
//

#import <Foundation/Foundation.h>

#define kAdminConfig_loglevel_default_value 1

static NSString *const level_ERROR = @"ERROR";
static NSString *const level_WARN = @"WARNING";
static NSString *const level_DEBUG = @"DEBUG";
static NSString *const level_FATAL = @"FATAL";

typedef enum HsLogLevel
{
    HsLogLevelOff     = 0,
    HsLogLevelFatal   = 1,
    HsLogLevelError   = 2,
    HsLogLevelWarning = 3,
    HsLogLevelDebug   = 4
} HsLogLevel;

/**
 * Simple logger class which logs to the console if the flag is enabled.
 */
@interface RNHSCoreLogger : NSObject

+ (void) setLogLevel:(HsLogLevel)logLevel;
+ (void) enableConsoleLogging:(BOOL)enableConsoleLogging;

+ (void) logErrorWithTag:(NSString *)tag message:(NSString *)message;
+ (void) logErrorWithTag:(NSString *)tag message:(NSString *)message error:(NSError *)error;
+ (void) logWarningWithTag:(NSString *)tag message:(NSString *)message;
+ (void) logWarningWithTag:(NSString *)tag message:(NSString *)message error:(NSError *)error;
+ (void) logDebugWithTag:(NSString *)tag message:(NSString *)message;
+ (void) logDebugWithTag:(NSString *)tag message:(NSString *)message error:(NSError *)error;

@end
