uniapp 日志记录
日志记录的必要性
在 uniapp 开发中,日志记录是排查问题、分析用户行为的重要手段。通过日志可以追踪运行时错误、性能瓶颈及用户操作路径,尤其在多端发布时,统一的日志管理能显著提升调试效率。
控制台日志输出
uniapp 支持 console.log 系列方法,但需注意平台差异:

- H5/小程序/App:直接使用
console.log,开发工具中可查看输出。 - App 端扩展:通过
plus.console.log写入系统日志(Android 的 Logcat/iOS 的 Xcode 控制台)。
// 示例:分级日志输出
console.debug('Debug 信息');
console.warn('警告信息');
console.error('错误信息');
持久化日志存储
需将日志保存到本地文件或发送至服务器,避免控制台日志丢失:
方法一:使用 uni.writeFile

const logMessage = `${new Date().toISOString()}: Error occurred\n`;
uni.writeFile({
filePath: '_doc/log.txt',
data: logMessage,
success: () => console.log('日志写入成功'),
fail: (err) => console.error('日志写入失败', err)
});
方法二:集成第三方服务
- Sentry:通过
@sentry/browser和@sentry/miniapp支持多端错误监控。 - 自定义 HTTP 上报:将日志通过 API 发送至后端存储。
uni.request({
url: 'https://api.example.com/log',
method: 'POST',
data: { level: 'error', message: 'Network timeout' }
});
日志分级与过滤
建议按严重性分级(如 DEBUG/INFO/ERROR),并通过环境变量控制输出级别:
const LOG_LEVEL = process.env.NODE_ENV === 'development' ? 'DEBUG' : 'ERROR';
function log(level, message) {
if (LOG_LEVEL === 'DEBUG' || level === 'ERROR') {
console[level](message);
}
}
注意事项
- 隐私合规:避免记录敏感信息(如用户密码、Token)。
- 性能优化:高频日志需节流或使用 WebWorker 异步处理。
- 多端兼容:检查
uni.getSystemInfo区分平台,调整日志策略。
通过上述方法可实现高效的日志记录系统,覆盖开发调试与生产环境需求。






