uniapp 日志
uniapp 日志管理方法
uniapp本身没有内置日志系统,但可以通过以下方式实现日志记录功能:
使用console.log输出日志
开发阶段可以直接使用console.log()、console.error()等方法输出日志,在HBuilderX的调试控制台或浏览器开发者工具中查看。
自定义日志模块 创建专门的日志工具类,实现日志分级、存储和上报功能:
// logger.js
const logLevels = {
DEBUG: 0,
INFO: 1,
WARN: 2,
ERROR: 3
};
class Logger {
constructor(level = logLevels.DEBUG) {
this.level = level;
}
debug(...args) {
if (this.level <= logLevels.DEBUG) {
console.log('[DEBUG]', ...args);
}
}
error(...args) {
if (this.level <= logLevels.ERROR) {
console.error('[ERROR]', ...args);
}
}
}
export default new Logger();
持久化存储日志 使用uniapp的存储API将重要日志保存到本地:

// 保存日志
const logs = uni.getStorageSync('app_logs') || [];
logs.push({time: Date.now(), message: 'Error occurred'});
uni.setStorageSync('app_logs', logs);
// 读取日志
const storedLogs = uni.getStorageSync('app_logs');
日志上报服务器 通过网络请求将错误日志上报到服务器:
function uploadLogs(logs) {
uni.request({
url: 'https://your-server.com/logs',
method: 'POST',
data: {logs},
success() {
uni.removeStorageSync('app_logs');
}
});
}
生产环境日志处理建议
开发环境和生产环境应采用不同的日志策略:
开发环境 保持详细日志输出,方便调试。

生产环境 减少不必要的日志输出,只记录关键错误,避免影响性能。可以配置不同的日志级别:
// 生产环境配置
const isProduction = process.env.NODE_ENV === 'production';
export default new Logger(isProduction ? logLevels.WARN : logLevels.DEBUG);
错误监控集成
考虑集成专业的错误监控服务如Sentry、Bugsnag等,这些服务提供uniapp SDK,可以自动捕获和上报错误:
// 使用Sentry示例
import * as Sentry from '@sentry/browser';
import * as Integrations from '@sentry/integrations';
Sentry.init({
dsn: 'your-dsn-url',
integrations: [new Integrations.Vue()],
release: 'your-app@version'
});
日志清理策略
定期清理过期日志,避免存储空间占用过多:
function cleanOldLogs() {
const logs = uni.getStorageSync('app_logs') || [];
const oneWeekAgo = Date.now() - 7 * 24 * 60 * 60 * 1000;
const filtered = logs.filter(log => log.time > oneWeekAgo);
uni.setStorageSync('app_logs', filtered);
}






