package com.bonait.bnframework.HBL.Logs;

import android.util.Log;

import com.bonait.bnframework.HBL.Thread.ThreadManager;
import com.bonait.bnframework.common.db.QueryDB;
import com.bonait.bnframework.common.db.mode.BPA_ALERTLOG;

import java.util.concurrent.ConcurrentLinkedQueue;

public class MessageLog {
    private static IMessageLogNotify MsgNotify;
    private static ConcurrentLinkedQueue<String> msgQueue=new ConcurrentLinkedQueue<String>();
    private static void Init(){
        MsgNotify = new IMessageLogNotify() {
            @Override
            public void ErrorMsg(String msg) {
                Log.e("错误日志",msg);
            }

            @Override
            public void InfoMsg(String msg) {
                Log.i("信息日志",msg);
            }

            @Override
            public void WarnMsg(String msg) {
                Log.w("警告日志",msg);
            }
        };
        ThreadManager.get().StartLong("日志信息保存",true,()->{
            while(msgQueue.size()>0){
                String msg= msgQueue.poll();
                BPA_ALERTLOG log= new BPA_ALERTLOG();
                log.text=msg;
                QueryDB.AddAlertlog(log);
            }
            Thread.sleep(2000);
        });
    }

    public static void ShowInfo(String msg) {
        if (MsgNotify == null)Init();
        MsgNotify.InfoMsg(msg);
    }

    public static void ShowWarning(String msg) {
        if (MsgNotify == null)Init();
        MsgNotify.WarnMsg(msg);
    }

    public static void ShowError(String msg) {
        if (MsgNotify == null)Init();
        MsgNotify.ErrorMsg(msg);
    }

    public static void ShowError(Exception e) {
        if (MsgNotify == null)Init();
        MsgNotify.ErrorMsg(e.toString());
    }

}
