cordova-log-writer.js.md 3.0 KB

Cordova 日志写入器

使用 cordova-plugin-file 将日志保存到 Cordova 应用的本地文件系统。

功能特性

  • 本地存储:日志保存在设备本地,不依赖网络连接
  • 按日期轮转:每天自动创建新的日志文件
  • 异步写入:不阻塞应用主线程
  • 错误容忍:写入失败时不抛出异常,避免影响应用运行
  • Cordova就绪检测:自动等待 deviceready 事件

文件位置和轮转

日志文件保存在应用的数据目录中:

  • Android: /data/data/{app-package-name}/files/YYYY-MM-DD_XXX.log
  • iOS: Documents/YYYY-MM-DD_XXX.log (应用沙盒内)

文件轮转机制

  • 大小限制: 每个日志文件最大2MB
  • 命名规则: YYYY-MM-DD_XXX.log,其中XXX是从000开始的索引
  • 自动轮转: 当文件超过2MB时,自动创建新的索引文件
  • 按日期分组: 每天重置索引,从000开始

使用方法

1. 安装插件

cordova plugin add cordova-plugin-file

2. 自动集成

当应用运行在Cordova环境中时,日志系统会自动检测并使用Cordova日志写入器:

import { logger } from './src/log/logger.js';

// 这些日志调用会自动保存到本地文件
logger.log('应用启动');
logger.error('发生错误', error);
logger.warn('警告信息');

3. 日志格式

[2025-12-15T07:29:09.123Z] [level] 消息内容

实现细节

初始化流程

  1. 检测Cordova环境可用性
  2. 等待 deviceready 事件(如果未触发)
  3. 获取应用数据目录的文件系统
  4. 创建或打开当天的日志文件

错误处理

  • 所有文件操作失败时只记录警告,不抛出异常
  • 超时保护:初始化等待最多30秒
  • 降级策略:如果文件系统不可用,仍可在控制台看到日志

单例模式

使用单例模式确保只有一个日志写入器实例,避免重复初始化和资源浪费。

调试方法

查看日志文件路径

import { getCordovaLogWriter } from './src/log/cordova-log-writer.js';

const writer = getCordovaLogWriter();
const path = await writer.getLogFilePath();
console.log('日志文件路径:', path);

检查写入器状态

console.log('写入器就绪:', writer.isReady);

注意事项

  1. 权限要求:确保应用有文件系统访问权限
  2. 存储空间:定期清理旧日志文件,避免占用过多存储空间
  3. 性能影响:频繁日志写入可能影响应用性能,建议在生产环境中控制日志级别
  4. 隐私考虑:日志可能包含敏感信息,注意数据保护要求

故障排除

日志不写入文件

  1. 检查 cordova-plugin-file 是否正确安装
  2. 确认应用在Cordova环境中运行
  3. 检查设备存储权限
  4. 查看控制台是否有初始化错误信息

文件路径问题

不同平台的路径表示可能不同,使用 getLogFilePath() 方法获取实际路径进行调试。