{"id":19233694,"url":"https://github.com/brightdigit/felinepine","last_synced_at":"2025-04-21T04:33:23.922Z","repository":{"id":167030538,"uuid":"642578815","full_name":"brightdigit/FelinePine","owner":"brightdigit","description":"Easy to use API for setting up logging and log categories across your architecture","archived":false,"fork":false,"pushed_at":"2025-01-14T02:00:13.000Z","size":122,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T08:02:07.632Z","etag":null,"topics":["logging","swift","swift-log"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brightdigit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-05-18T22:28:05.000Z","updated_at":"2025-01-14T01:59:09.000Z","dependencies_parsed_at":"2024-11-09T16:11:42.551Z","dependency_job_id":"4e306e5d-18b9-4834-9148-95aefb585c26","html_url":"https://github.com/brightdigit/FelinePine","commit_stats":null,"previous_names":["brightdigit/felinepine"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FFelinePine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FFelinePine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FFelinePine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FFelinePine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brightdigit","download_url":"https://codeload.github.com/brightdigit/FelinePine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249996247,"owners_count":21358096,"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","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":["logging","swift","swift-log"],"created_at":"2024-11-09T16:11:33.181Z","updated_at":"2025-04-21T04:33:23.672Z","avatar_url":"https://github.com/brightdigit.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"FelinePine\" title=\"FelinePine\" src=\"Sources/FelinePine/Documentation.docc/Resources/FelinePine.svg\" height=\"250\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eFelinePine\u003c/h1\u003e\n\nType-wide **cat**egorized **log**ging.\n\n[![SwiftPM](https://img.shields.io/badge/SPM-Linux%20%7C%20iOS%20%7C%20macOS%20%7C%20watchOS%20%7C%20tvOS-success?logo=swift)](https://swift.org)\n[![Twitter](https://img.shields.io/badge/twitter-@brightdigit-blue.svg?style=flat)](http://twitter.com/brightdigit)\n![GitHub](https://img.shields.io/github/license/brightdigit/FelinePine)\n![GitHub issues](https://img.shields.io/github/issues/brightdigit/FelinePine)\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/brightdigit/FelinePine/FelinePine.yml?label=actions\u0026logo=github\u0026?branch=main)\n\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fbrightdigit%2FFelinePine%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/brightdigit/FelinePine)\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fbrightdigit%2FFelinePine%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/brightdigit/FelinePine)\n\n\n[![Codecov](https://img.shields.io/codecov/c/github/brightdigit/FelinePine)](https://codecov.io/gh/brightdigit/FelinePine)\n[![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/brightdigit/FelinePine)](https://www.codefactor.io/repository/github/brightdigit/FelinePine)\n[![codebeat badge](https://codebeat.co/badges/6e03bfba-8c8c-4865-9ea2-4df9a2b94bf4)](https://codebeat.co/projects/github-com-brightdigit-felinepine-main)\n[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/brightdigit/FelinePine)](https://codeclimate.com/github/brightdigit/FelinePine)\n[![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/brightdigit/FelinePine?label=debt)](https://codeclimate.com/github/brightdigit/FelinePine)\n[![Code Climate issues](https://img.shields.io/codeclimate/issues/brightdigit/FelinePine)](https://codeclimate.com/github/brightdigit/FelinePine)\n[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)\n\n# Table of Contents\n\n* [Introduction](#introduction)\n   * [Requirements](#requirements)\n   * [Installation](#installation)\n* [Usage](#usage)\n   * [Getting Started](#getting-started)\n   * [Using the Loggable type](#using-the-loggable-type)\n   * [Further Documentation](#further-documentation)\n* [License](#license)\n\n# Introduction\n\n**FelinePine** provides an easy to use API for setting up logging and log categories across your architecture.\n\n## Requirements \n\n**Apple Platforms**\n\n- Xcode 14.3.1 or later\n- Swift 5.8 or later\n- macOS 12 or later deployment targets\n\n**Linux**\n\n- Ubuntu 18.04 or later\n- Swift 5.8 or later\n\n## Installation\n\nUse the Swift Package Manager to install this library via the repository url:\n\n```\nhttps://github.com/brightdigit/FelinePine.git\n```\n\nUse version up to `1.0.0`.\n\n# Usage\n\n## Getting Started\n\nCreate a `LoggingSystem` which defines the categories:\n\n```swift\npublic enum BushelLogging: LoggingSystem {\n  public enum Category: String, CaseIterable {\n    case library\n    case data\n    case view\n    case machine\n    case application\n    case observation\n    case market\n  }\n}\n```\n\nThe `Category` enum inside must have a `RawType` of `String`.\nAdditionally if you wish to take advantage of automatically created `Logger` object, \nthen you should also have to implment `CaseIterable`.\n\nNow to use your new `LoggingSystem` in any type:\n\n1. Implement `Feline` and `Pine` \n2. Define your `LoggingSystem`\n3. Define the `LoggingSystem.Category`\n\n```swift\ninternal struct VirtualMachine: Loggable {\n  internal typealias LoggingSystemType = BushelLogging\n\n  internal static let loggingCategory: BushelLogging.Category = .machine\n  \n  func run () {\n    Self.logger.debug(\"Starting Run\")\n    ...\n  }\n  ...\n}\n```\n\n## Using the `Loggable` type\n\nYou can simplify by using the `Loggable` protocol to create protocol to use throughout your codebase:\n\n```swift\npublic protocol BushelLoggable: FelinePine.Loggable where Self.LoggingSystemType == BushelLogging {}\n```\n\nNow you can simply use the _new_ `Loggable` type:\n\n```swift\ninternal struct VirtualMachine: BushelLoggable {\n  internal static let loggingCategory: BushelLogging.Category = .machine\n  \n  func run () {\n    Self.logger.debug(\"Starting Run\")\n    ...\n  }\n}\n```\n\n## Further Documentation\n\nFurther documentation is available at [the Swift Package Index.](https://swiftpackageindex.com/brightdigit/FelinePine/1.0.0/documentation/FelinePine)\n\n# License \n\nThis code is distributed under the MIT license. See the [LICENSE](https://github.com/brightdigit/FelinePine/LICENSE) file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightdigit%2Ffelinepine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrightdigit%2Ffelinepine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightdigit%2Ffelinepine/lists"}