# 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. 安装插件 ```bash cordova plugin add cordova-plugin-file ``` ### 2. 自动集成 当应用运行在Cordova环境中时,日志系统会自动检测并使用Cordova日志写入器: ```javascript 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秒 - 降级策略:如果文件系统不可用,仍可在控制台看到日志 ### 单例模式 使用单例模式确保只有一个日志写入器实例,避免重复初始化和资源浪费。 ## 调试方法 ### 查看日志文件路径 ```javascript import { getCordovaLogWriter } from './src/log/cordova-log-writer.js'; const writer = getCordovaLogWriter(); const path = await writer.getLogFilePath(); console.log('日志文件路径:', path); ``` ### 检查写入器状态 ```javascript console.log('写入器就绪:', writer.isReady); ``` ## 注意事项 1. **权限要求**:确保应用有文件系统访问权限 2. **存储空间**:定期清理旧日志文件,避免占用过多存储空间 3. **性能影响**:频繁日志写入可能影响应用性能,建议在生产环境中控制日志级别 4. **隐私考虑**:日志可能包含敏感信息,注意数据保护要求 ## 故障排除 ### 日志不写入文件 1. 检查 `cordova-plugin-file` 是否正确安装 2. 确认应用在Cordova环境中运行 3. 检查设备存储权限 4. 查看控制台是否有初始化错误信息 ### 文件路径问题 不同平台的路径表示可能不同,使用 `getLogFilePath()` 方法获取实际路径进行调试。