{"adoption": {"forks": 150, "observed_at": "2026-08-28T04:04:20.721353+00:00", "stars": 1316}, "canonical_url": "https://ross.abutalabs.com/products/cleanroomlogger", "card": {"archived": false, "artifact_type": "library", "description": "CleanroomLogger provides an extensible Swift-based logging API that is simple, lightweight and performant", "domain": ["developer-tools", "apple-ecosystem"], "enriched": true, "function": ["logging"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["emaloney/CleanroomLogger"], "name": "emaloney/CleanroomLogger", "platform": [], "pushed_at": "2023-03-14T16:10:38+00:00", "repo": "emaloney/CleanroomLogger", "stars": 1316, "tags": ["swift", "oslog", "unified-logging", "extensible", "performant", "ios-tools", "ios", "macos"], "topics": [], "urls": [], "use_cases": ["add structured logging to an iOS app", "log messages by severity level in Swift", "integrate logging with os_log on Apple platforms", "build a custom log formatter for my app", "replace CocoaLumberjack with a lightweight Swift logger", "keep logging off the main thread for smooth scrolling"], "what_it_is": "CleanroomLogger is an extensible Swift-based logging library for Apple platforms that is simple, lightweight and performant. It integrates with Apple's Unified Logging System (OSLog) where available and falls back to standard output mechanisms otherwise.", "when_to_avoid": ["you need actively maintained support for the latest Swift versions (it targets Swift 4.1 / Xcode 9.3)", "you need cross-platform logging beyond Apple ecosystems", "you require a logging framework with frequent updates and community support"], "when_to_choose": ["you need a lightweight, performant Swift logging API on iOS, macOS, tvOS or watchOS", "you want OSLog integration with automatic fallback on older systems", "you need severity-based filtering and customizable log formatting"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cleanroomlogger", "repo": "emaloney/CleanroomLogger", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.721353+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:48:28.560226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d2457ca3eee47696f43212d331204b4959110c5f3e3de13310dd107bea0dd44", "fetched_at": "2026-08-28T04:04:20.721353+00:00", "kind": "readme", "missing": false, "url": "https://github.com/emaloney/CleanroomLogger"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4156, "days_push": 1268, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}