package com.elab.log.utils;

import com.dianping.cat.Cat;
import com.dianping.cat.message.Event;
import com.elab.core.utils.ObjectUtils;

/**
 * @describe ：日志事件写入
 * @Author ： liukx
 * @time ： 2019/1/25 - 11:07
 */
public class EventProcessUtils {

    private static final String WARN_KEY = "WARN_LOG";

    /**
     * 写入Event事件
     *
     * @param key
     * @param value
     */
    public static void write(String key, String value) {
        Cat.logEvent(key, value, Event.SUCCESS, null);
    }

    /**
     * 写入事件
     *
     * @param key
     * @param value
     * @param nameValuePairs
     */
    public static void write(String key, String value, String nameValuePairs) {
        Cat.logEvent(key, value, Event.SUCCESS, nameValuePairs);
    }

    /**
     * 写入事件
     *
     * @param key
     * @param value
     * @param success
     * @param nameValuePairs
     */
    public static void write(String key, String value, String success, String nameValuePairs) {
        Cat.logEvent(key, value, success, nameValuePairs);
    }

    /**
     * 插入一个Event失败的事件
     *
     * @param key
     * @param value
     */
    public static void writeFail(String key, String value) {
        Cat.logEvent(key, value, "1", null);
    }

    /**
     * 写入失败事件
     *
     * @param key
     * @param value
     * @param kv
     */
    public static void writeFail(String key, String value, String kv) {
        Cat.logEvent(key, value, "1", kv);
    }

    /**
     * 第三方埋点标记
     *
     * @param url 记录URL地址
     */
    public static void writeThirdParty(String url) {
        if (ObjectUtils.isNotEmpty(url)) {
            String newUrl = url;
            if (url.indexOf("?") > 0) {
                newUrl = url.substring(0, url.indexOf("?"));
            }
            EventProcessUtils.write(CatMsgConstants.THIRD_PARTY, newUrl);
        }
    }

    /**
     * 埋入比较关注的点
     *
     * @param key   唯一的key
     * @param value 值
     */
    public static void warnMsg(String key, String value) {
        write(WARN_KEY, key, value);
    }

}
