# eappLogger
**参考文档**
> [eapp](https://open-doc.dingtalk.com/microapp/dev/framework-app)
> [微信小程序开发](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html)

## 1.开始使用

```ts
    /**
     * @desc 监控sdk初始化,debug模式仅打印日志，不发送日志
     * monitor.js
     */
    import EAppLogger from 'alife-logger/eapp';
    module.exports = EAppLogger.singleton({
        debug: true, // 本地开发不发送日志，但打印日志
        pid: 'your-project-id',
    });
    /**
     * 启动页 app.js
     * @see E应用 https://open-doc.dingtalk.com/microapp/dev/framework-app
     * @see 微信 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html
     */
    import eappLogger from './monitor';
    // 用了hookApp后，生命周期的api会自动打点
    App(eappLogger.hookApp({
        onLaunch(options) {
        },
        onShow(options) {
        },
        onHide() {
        },
        onError(msg) {
        },
    }));
    /**
     * page页
     * @see E应用 https://open-doc.dingtalk.com/microapp/dev/framework-page
     * @see 微信 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page.html
     */
    import eappLogger from './monitor';
    // 用了hookPage后，生命周期的api会自动打点
    Page(eappLogger.hookPage({
        data: {},
        /**
         * @see E应用 https://open-doc.dingtalk.com/microapp/dev/httprequest
         * @see 微信 https://developers.weixin.qq.com/miniprogram/dev/framework/ability/mDNS.html
         */
        onLoad(query) {
        },
        onReady() {
            // 页面加载完成
        },
        onShow() {
            // 页面显示
        },
        onLoad(query) {
            const apiUrl = 'http://httpbin.org/post';
            const startTime = Date.now();
            // 默认情况会自动给httpRequest加上api埋点，除非config时将disableHook设为true
            dd.httpRequest({
                url: apiUrl,
                method: 'POST',
                data: {},
                success: function(res) {
                },
                fail: function(res) {
                },
                complete: function(res) {}
            });
        },
        onTitleClick() {
            /**
             * 统计打点数据，自定义打点
             * @desc
             */
            eappLogger.sum('titleClick');
        },       
    }));
```

## 2. 通用API

api示例请参考 **Getting Started**

| 方法  | 参数 |  备注      | 使用场景举例 | 
| -------- | -------- | -------- | -------- |
| hookApp  | {}  | 请传入原有的App参数 | 自动在App的生命周期中打点 |
| hookPage  | {}  | 请传入原有的Page参数 | 自动在Page的生命周期中打点 |

大部分日志上报api见上面的示例即可

## 3. 日志上报API

> 请参见 [README](README.md) 的 `API接口 > 数据上报接口`
