uniapp 在app中根据接口返回信息写报错日志

let code = res.statusCode
                    // #ifdef APP-PLUS
                    if (code != 200) {
                        let newdate = new Date();
                        var formatDate = function(date) {
                            var y = date.getFullYear();
                            var m = date.getMonth() + 1;
                            m = m < 10 ? '0' + m : m;
                            var d = date.getDate();
                            d = d < 10 ? ('0' + d) : d;
                            return y + '-' + m + '-' + d;
                        };
                        var SaveErrorMessage = function(writedata) {
                            //请求本地文件系统对象plus.io.requestFileSystem( type, succesCB, errorCB )
                            //请求本地系统文件对象plus.io.PRIVATE_DOC应用私有文档目录常量
                            plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fobject) {
                                // fs.root是根目录操作对象DirectoryEntry//getFile创建或打开文件
                                fobject.root.getFile(writedata.time.split(' ')[0] +'.txt', {create: true},
                                    function(fileEntry) { //getFile成功回调内的参数、根目录操作对象DirectoryEntry
                                        fileEntry.createWriter(function(writer) { //createWriter获取文件关联的写文件操作对象FileWriter
                                            writer.onwrite = function(e) { //写入文件成功的回调函数
                                                let ErrorMessageList =uni.getStorageSync('ErrorMessageList');
                                                ErrorMessageList.splice(0, 1);
                                                uni.setStorageSync('ErrorMessageList',ErrorMessageList); //写成功以后删掉第一条数据
                                                if (uni.getStorageSync('ErrorMessageList').length >0) //删掉数据以后还有数据就递归自己
                                                    SaveErrorMessage(uni.getStorageSync('ErrorMessageList')[0]);
                                                else //没有数据则移除存储文件
                                                    uni.removeStorageSync('ErrorMessageList');
                                                /*fileEntry.file( function(file){//fileEntry.file获取文件数据对象
                                                    var fileReader = new plus.io.FileReader();//FileReader文件系统中的读取文件对象,用于获取文件的内容
                                                    fileReader.readAsText(file, 'utf-8');//readAsText: 以文本格式读取文件数据内容,第一个参数是文件数据对象,第二个参数是读取文件数据内容的字符编码格式目前仅支持utf-8
                                                    fileReader.onloadend = function(evt) {//onloadend文件读取操作完成时的回调函数
                                                        console.log(evt.target.result);//在这里读取到了文件
                                                    }
                                                });*/
                                            };
                                            writer.seek(writer.length -1); //定位到文档的结尾开始写数据
                                            writer.write("\n" + '记录时间:' +writedata.time +' ' +JSON.stringify(writedata)); //写数据
                                        }, function(e) {
                                            alert(e.message);
                                        });
                                    });
                            });
                        }
                        var writedata = {
                            'data': data,
                            'url': url,
                            'userid': uni.getStorageSync('UserInfo').id,
                            'errorMessage': res.data.msg || res.data.errorMessage,
                            'time': formatDate(newdate) + ' ' +
                                (newdate.getHours() < 10 ? '0' + newdate.getHours() : newdate.getHours()) +
                                ':' + (newdate.getMinutes() < 10 ? '0' + newdate.getMinutes() :newdate.getMinutes()) +
                                ':' + (newdate.getSeconds() < 10 ? '0' + newdate.getSeconds() :newdate.getSeconds())
                        };

                        if (!uni.getStorageSync('ErrorMessageList')) {
                            uni.setStorageSync('ErrorMessageList', [writedata]); //把数据存到缓存内,然后开始调用SaveErrorMessage
                            SaveErrorMessage(uni.getStorageSync('ErrorMessageList')[0]);
                        } else {
                            let errlist= uni.getStorageSync('ErrorMessageList');
                            errlist.push(writedata)
                            uni.setStorageSync('ErrorMessageList', errlist);
                            SaveErrorMessage(uni.getStorageSync('ErrorMessageList')[0]);
                        }
                    }
                    // #endif

### UniApp 开发中的错误查看与处理方法 #### 使用 ADB Logcat 查看 Android 应用日志 对于在 Android 平台上运行的 UniApp 应用,可以通过 `adb logcat` 命令来捕获应用的日志信息。具体操作如下: - 获取目标应用程序的进程 ID (PID),然后执行命令 `adb logcat --pid=<进程号>` 来获取特定于该应用的日志条目[^1]。 这允许开发者专注于自己应用产生的日志消息,而忽略其他无关的应用程序输出。当遇到中文显示问题时,在 CMD 中输入 `chcp 65001` 可解决可能存在的乱码情况,因为此设置会将控制台字符集更改为 UTF-8 编码方式。 #### 微信开发者工具调试 为了方便地测试和调试微信小程序环境下的 UniApp 应用,可以选择“运行”—>"运行到小程序模拟器"—> "微信开发者工具" 的流程来进行本地预览和调试工作[^2]。 #### 引入 Logger 工具库增强日志记录功能 除了依赖平台自带的日志机制外,还可以通过引入专门的日志模块如 `logger.js` 文件进一步加强项目的日志管理能力。这样做不仅有助于更好地跟踪代码执行流,而且可以在发生异常时提供更加详细的上下文信息以便快速定位并解决问题[^5]。 ```javascript // 示例:引入自定义 logger 模块用于日志记录 import logger from '@/common/js/logger.js'; try { // 正常业务逻辑... } catch (error) { logger.error('An error occurred:', error); } ``` #### 发布前进行全面测试确保稳定性 考虑到不同终端设备之间的差异性以及网络状况等因素的影响,在正式上线之前应该尽可能多地覆盖各种场景进行充分的功能性和兼容性测试,从而减少潜在的风险点。此外,利用真机调试功能可以帮助发现一些仅存在于实际硬件上的特殊问题[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值