package com.reactnativeandroidlog;

import androidx.annotation.NonNull;

import com.blankj.utilcode.util.CrashUtils;
import com.blankj.utilcode.util.LogUtils;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.module.annotations.ReactModule;

@ReactModule(name = AndroidLogModule.NAME)
public class AndroidLogModule extends ReactContextBaseJavaModule {
    public static final String NAME = "AndroidLog";

    public AndroidLogModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    @NonNull
    public String getName() {
        return NAME;
    }

    /**
     * 初始化日志模块
     */
    @ReactMethod
    public void init(Promise promise) {
        LogUtils.getConfig()
                .setGlobalTag("NewBest")
                .setLog2FileSwitch(true)
                .setFilePrefix("newbest")
                .setBorderSwitch(false)
                .setLogHeadSwitch(false)
                .setSaveDays(5);
        CrashUtils.init();
        promise.resolve(LogUtils.getCurrentLogFilePath());
    }

    @ReactMethod
    public void d(String content) {
        LogUtils.d(content);
    }

    @ReactMethod
    public void i(String content) {
        LogUtils.i(content);
    }

    @ReactMethod
    public void w(String content) {
        LogUtils.w(content);
    }

    @ReactMethod
    public void e(String content) {
        LogUtils.e(content);
    }
}
