# LogMonitor **Repository Path**: yyf0502/LogMonitor ## Basic Information - **Project Name**: LogMonitor - **Description**: Android端日志监控,默认保存为文件,定时删除日志文件,自动按照大小清理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-29 - **Last Updated**: 2025-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android, Java, 日志监控, 移动端 ## README # LogMonitor README ## 简介 `LogMonitor` 是一个用于日志监控和管理的工具类,支持将不同类型的日志存储到不同的子目录。它可以按需生成日志文件,自动清理过期日志,并在日志文件达到大小限制时进行清理和重置。 ## 特性 - **日志分类**:支持多种类型的日志,包括系统日志、网络日志、UI 交互日志、性能监控日志等。 - **自动清理**:可清理过期的日志文件和超出大小限制的日志文件。 - **日志文件管理**:支持日志按日期创建文件,并根据日志类别保存到不同目录。 - **日志容量限制**:设置最大日志文件大小和最大日志目录大小,防止日志文件无限增长。 - **线程安全**:通过双重检查锁定模式,确保单例模式的线程安全性。 ## 使用方法 ### 1. 获取 LogMonitor 实例 `LogMonitor` 采用单例模式,你不需要直接实例化它,而是通过 `getInstance(Context context)` 方法来获取实例: ```java LogMonitor logMonitor = LogMonitor.getInstance(context); ``` ### 2. 记录日志 调用 `log()` 方法记录不同类型的日志。该方法支持不带标签和带标签的日志记录。 #### 不带标签的日志记录: ```java logMonitor.log(LogMonitor.LogType.SYSTEM, "系统日志内容"); logMonitor.log(LogMonitor.LogType.NETWORK, "网络连接成功"); ``` #### 带标签的日志记录: ```java logMonitor.log(LogMonitor.LogType.UI, "MainActivity", "按钮点击事件"); logMonitor.log(LogMonitor.LogType.PERFORMANCE, "PerformanceMonitor", "帧率:60FPS"); ``` ### 3. 关闭日志 如果需要关闭某个特定的日志文件,可以调用 `close()` 方法: ```java logMonitor.close(LogMonitor.LogType.SYSTEM); ``` 关闭所有日志: ```java logMonitor.closeAll(); ``` ### 4. 日志文件清理 `LogMonitor` 会自动清理过期的日志文件(根据设定的保留天数)。如果日志文件达到指定大小限制(默认200MB),它将会自动重置日志文件并创建新文件。 ### 5. 支持的日志类型 `LogMonitor` 支持以下几种日志类型: - **基础系统日志**:系统日志、服务日志、性能日志、电池状态日志等。 - **用户交互日志**:点击事件日志、长按事件日志、滑动事件日志等。 - **网络通信日志**:网络日志、HTTP 请求日志、Wi-Fi 连接日志等。 - **设备与传感器日志**:GPS 日志、摄像头日志、加速度传感器日志等。 - **音视频日志**:音频播放日志、视频播放日志、录屏日志等。 - **存储与数据日志**:文件读写日志、数据库操作日志、云存储日志等。 - **后台任务日志**:后台任务日志、定时任务日志等。 - **调试与开发日志**:调试日志、性能分析日志、内存泄漏日志等。 ### 6. 配置项 - **最大日志文件大小**:默认为 200MB,超过此大小会自动重置日志文件。 - **最大目录大小**:默认为 1GB,超过此大小会清理旧的日志文件。 - **日志清理天数**:默认为 3 天,超过此天数的日志文件会被删除。 ## 依赖和库导入 如果你使用的是 `Gradle`,可以通过以下方式添加依赖: #### 1. 在 `build.gradle` 中添加 Maven 仓库 首先,确保你在项目的 `build.gradle` 文件的 `repositories` 部分添加了 JitPack 仓库: ```gradle repositories { maven { url "https://jitpack.io" } } ``` #### 2. 在 `dependencies` 中添加 `LogMonitor` 依赖 然后,在 `dependencies` 部分添加 `LogMonitor` 的依赖: ```gradle dependencies { implementation 'com.gitee.yyf0502:LogMonitor:v1.2.3' } ``` --- ## 示例代码 ```java // 获取 LogMonitor 实例 LogMonitor logMonitor = LogMonitor.getInstance(context); // 记录系统日志 logMonitor.log(LogMonitor.LogType.SYSTEM, "系统启动成功"); // 记录网络日志 logMonitor.log(LogMonitor.LogType.NETWORK, "网络连接成功"); // 记录 UI 日志 logMonitor.log(LogMonitor.LogType.UI, "MainActivity", "按钮点击事件"); // 关闭指定日志 logMonitor.close(LogMonitor.LogType.UI); // 关闭所有日志 logMonitor.closeAll(); ``` ## 注意事项 1. **日志目录**:日志文件会保存在应用的外部缓存目录下,路径为 `/padLogs`。 2. **清理策略**:`LogMonitor` 会自动清理超过设定日期(默认 3 天)的旧日志文件,并且在达到指定大小时,会清理日志文件以释放空间。 ## 总结 `LogMonitor` 是一个功能强大且灵活的日志监控工具,可以帮助开发者管理应用的日志文件,确保日志文件不会无限制增长,提供多种清理策略,适应不同的应用场景。 ---