# HCLog **Repository Path**: free_fa/HCLog ## Basic Information - **Project Name**: HCLog - **Description**: HCLog 是 Swift 语言日志库,支持 Debug, Info, Warning 和 Error 四种级别日志,支持控制台日志和文件日志。 - **Primary Language**: Swift - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-17 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HCLog #### 介绍 `HCLog`是`Swift`语言日志库,支持`Debug`,`Info`,`Warning`和`Error`四种级别日志,支持控制台日志和文件日志。 #### 软件架构 * HCLog: 对外接口文件。 * HCLogChannel: 日志输出通道基类。 * ConsoleChannel: 控制台输出通道实现类。 * FileChannel: 文件输出通道实现类。 #### 安装教程 1. Swift Package Manager ```Swift let package = Package( name: "MyPackage", products: [ .library(name: "MyPackage", targets: ["MyPackage"]) ], dependencies: [ .package(url: "https://gitee.com/free_fa/hclog.git", from: "1.0.0") ], targets: [ .target(name: "MyPackage", path: "Sources"), .testTarget(name: "MyPackage", dependencies: ["MyPackage"], path: "MyPackageTests"), ], swiftLanguageVersions: [.v5] ) ``` 2. Cocoapods 本仓库未发布到Cocoapods公有Specs上,可以以git仓库地址引用: ```Ruby pod 'HCLog', :git => 'https://gitee.com/free_fa/hclog.git', :tag => '1.0.0' # 或者引用分支 # pod 'HCLog', :git => 'https://gitee.com/free_fa/hclog.git', :branch => 'master' ``` #### 使用说明 1. 初始化 使用之前必须进行初始化配置: ```Swift import HCLog func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { /// debug 级别, 控制台+文件输出. /// 文件日志默认保存在应用沙盒目录的 Library/Caches/HCLogs/ 文件夹中, /// 单个日志文件最大10MB,最多保存10个日志文件. 可以通过 Config 配置。 let config = HCLog.Config.init(level: .debug, channels: [.console, .file]) log.setConfig(config) return true } ``` 如果是在 Widget 或 其他 App Extension 中输出日志,使用另一个初始化方法,传入 Group Identifier: ```Swift import HCLog func someExtensionEntrace() { let config = HCLog.Config(level: .debug, channels: [.file], appGroupIdentifier: "group.com.myapp") log.setConfig(config) } ``` **注意** 如果在 Widget 或其他 App Extension 中输出文件log, log文件会保存在 App Group 的共享路径的 HCLogs 文件夹下(文件夹名称可以通过Config自定义配置)。读取共享路径下的log: ```Swift func readAppExtensionLogs() { gurad let sharedUrl = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.myapp") else { return } let logsDirectory = sharedUrl.appending(path: "HCLogs") do { let allLogFiles = try FileManager.default.contentsOfDirectory(at: logsDirectory, includingPropertiesForKeys: nil) for url in allLogFiles { let data = try Data(contentsOf: url) let content = String(data: data, encoding: .utf8) print(content) } } catch { // Handle error ... } } ``` 1. 使用 ```Swift import HCLog log.debug("输出debug级别日志") let name = "老王" log.info(name) log.warning(name) log.error(name) ```