{"id":22737051,"url":"https://github.com/kibotu/orchard","last_synced_at":"2025-07-28T14:05:50.604Z","repository":{"id":246874663,"uuid":"822438372","full_name":"kibotu/Orchard","owner":"kibotu","description":"Orchard is to iOS what Timber is to android logging.","archived":false,"fork":false,"pushed_at":"2024-11-05T08:40:30.000Z","size":25,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T04:37:47.664Z","etag":null,"topics":["ios","logger","logging-library","swift","timber"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kibotu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-01T06:47:29.000Z","updated_at":"2024-11-05T08:40:25.000Z","dependencies_parsed_at":"2024-07-05T17:44:52.549Z","dependency_job_id":"4530e939-0125-451d-b8a4-4c1ab2946b06","html_url":"https://github.com/kibotu/Orchard","commit_stats":null,"previous_names":["kibotu/orchard"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/kibotu/Orchard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FOrchard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FOrchard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FOrchard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FOrchard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kibotu","download_url":"https://codeload.github.com/kibotu/Orchard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FOrchard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267527835,"owners_count":24102019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","logger","logging-library","swift","timber"],"created_at":"2024-12-10T22:09:22.205Z","updated_at":"2025-07-28T14:05:50.524Z","avatar_url":"https://github.com/kibotu.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Orchard for iOS\n[![Build](https://github.com/kibotu/Orchard/actions/workflows/build-swift.yml/badge.svg)](https://github.com/kibotu/Orchard/actions/workflows/build-swift.yml) [![GitHub Tag](https://img.shields.io/github/v/tag/kibotu/Orchard?include_prereleases\u0026sort=semver)](https://github.com/kibotu/Orchard/releases) ![Static Badge](https://img.shields.io/badge/Platform%20-%20iOS%20-%20light_green)\n[![Static Badge](https://img.shields.io/badge/iOS%20-%20%3E%2016.0%20-%20light_green)](https://support.apple.com/en-us/101566)\n[![Static Badge](https://img.shields.io/badge/Swift%205.10%20-%20orange)](https://www.swift.org/blog/swift-5.10-released/)\n\nWelcome to **Orchard** - your new best friend for logging on iOS! 🍏📱\n\nInspired by the clever wordplay behind Timber, the Android logging system (logs and timber, get it?), we decided to bring a slice of that punny brilliance to iOS with Orchard. After all, what's more fitting than logging apples in the world of iPhones?\n\nBut let's get serious for a moment. Just because you're developing on iOS doesn't mean your logging has to be... shall we say, subpar? With Orchard, you can elevate your logging game with style and efficiency.\n\nOrchard is a versatile logging system for Swift applications, designed to provide flexible and contextual logging capabilities.\n\n## Key Features\n\n- Multiple log levels: verbose, debug, info, warning, error, and fatal\n- Support for multiple logging backends\n- Contextual logging with tags and custom icons\n- Automatic capture of file, function, and line information\n- Optional timestamp logging\n- Customizable log formatting\n- Thread-safe logging operations\n\n### Setup\n\n1. Add the Orchard package to your Swift project.\n2. Import Orchard in your Swift files:\n```swift\nimport Orchard\n```\n3. Add loggers to the Orchard system\n```swift\nOrchard.loggers.append(ConsoleLogger())\n```\n### Basic Usage\n\n```swift\n// Simple log message\nOrchard.i(\"User logged in successfully\")\n\n// Log with additional context\nOrchard.e(\"Failed to save data\", error, [\"userId\": user.id])\n\n// Use tags for categorization\nOrchard.tag(\"NetworkManager\").d(\"Request started\")\n\n// Custom icons\nOrchard.icon(\"🚀\").i(\"App launched\")\n\n// Focus on convenience\n\n// log only messages\nOrchard.v(\"verbose\")\nOrchard.i(\"info\")\nOrchard.d(\"debug\")\nOrchard.w(\"warning\")\nOrchard.e(\"error\")\nOrchard.f(\"fatal\")\n\n// only errors        \nlet error = HttpError.blacklisted\nOrchard.v(error)\nOrchard.i(error)\nOrchard.d(error)\nOrchard.w(error)\nOrchard.e(error)\nOrchard.f(error)\n\n// messages and errors\nOrchard.v(\"verbose\", error)\nOrchard.i(\"info\", error)\nOrchard.d(\"debug\", error)\nOrchard.w(\"warning\", error)\nOrchard.e(\"error\", error)\nOrchard.f(\"fatal\", error)\n\n// message and arguments\nlet args = [\"lorem\" : \"ipsum\"]\nOrchard.v(\"verbose\", args)\nOrchard.i(\"info\", args)\nOrchard.d(\"debug\", args)\nOrchard.w(\"warning\", args)\nOrchard.e(\"error\", args)\nOrchard.f(\"fatal\", args)\n\n// message, error and arguments\nOrchard.v(\"verbose\", error, args)\nOrchard.i(\"info\", error, args)\nOrchard.d(\"debug\", error, args)\nOrchard.w(\"warning\", error, args)\nOrchard.e(\"error\", error, args)\nOrchard.f(\"fatal\", error, args)\n```\n\n### Advanced Configuration\n\n```swift\n// Configure console logger\nlet consoleLogger = ConsoleLogger()\nconsoleLogger.showTimesStamp = true\nconsoleLogger.showInvocation = true\nOrchard.loggers.append(consoleLogger)\n\n// Add custom loggers\nclass MyCustomLogger: Orchard.Logger {\n    // Implement logger methods\n}\nOrchard.loggers.append(MyCustomLogger())\n```\n\n## How to install\n\n### Swift Package Manager\n\nAdd the dependency to your `Package.swift`\n\n```swift\n    products: [\n      ...\n    ]\n    dependencies: [\n        .package(url: \"https://github.com/kibotu/Orchard\", from: \"1.0.2\"),\n    ],\n    targets: [\n      ...\n    ]\n```\n\n## Requirements\n\n- iOS 16.0 or later\n- Xcode 15.0 or later\n- Swift 5.10 or later\n\nContributions welcome!\n\n### License\n\u003cpre\u003e\nCopyright 2024 Jan Rabe \u0026 CHECK24\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Forchard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkibotu%2Forchard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Forchard/lists"}