Meituan-Dianping / Logan

Logan is a lightweight case logging system based on mobile platform.
https://tech.meituan.com/logan_open_source.html
MIT License
5.73k stars 876 forks source link

怎么解析存储的日志数据 #432

Closed 963542298 closed 1 year ago

963542298 commented 2 years ago

求解答

1.调用Logan.log(),如何解析在indexDB的数据 image

  1. 发送给后台的数据又应该以什么形式去解析它

image

Richard-Cao commented 2 years ago

开源的server里有解析器

963542298 commented 2 years ago

我只用了logan-web,这个里面有解析的吗

Richard-Cao commented 2 years ago

我只用了logan-web,这个里面有解析的吗

在Logan-server里

963542298 commented 2 years ago

我还遇到一个问题,就是上报日志的时候传的incrementalReport为true 但是调用api成功后我看日志并没有删除。想问一下是什么原因导致的,以下的配置

logan.report({
                reportUrl,
                ...getFormAndToDay(day),
                // 提交后删除日志
                incrementalReport: true,
                xhrOptsFormatter: (logItemStrings) => {
                    // 处理返回给后台的log数据
                    const list = logItemStrings.map((item) => decodeURIComponent(item));
                    const logData = list.map((item) => {
                        const messageObj = JSON.parse(item);
                        // logObj为存储日志 t为日志等级 c为日志内容 d为日志时间
                        const logObj = JSON.parse(atob(messageObj.l));

                        // 返回给后台需要的数据
                        return {
                            logLevel: logObj.t,
                            content: decodeURIComponent(logObj.c),
                            date: logObj.d,
                        }
                    });

                    return {
                        data: JSON.stringify(logData),
                        headers: {
                            'Content-Type': 'application/json',
                        }
                    }
                },
963542298 commented 2 years ago

是需要后台配合返回 { code: 200 } 这样的数据吗

Richard-Cao commented 2 years ago

@Retrospection @sylvia1106

DusuWen commented 1 year ago

先decodeURIComponent,再Buffer.from(text, "base64").toString("utf-8"),最后再decodeURIComponent