{"adoption": {"forks": 220, "observed_at": "2026-08-28T04:05:01.509751+00:00", "stars": 1545}, "canonical_url": "https://ross.abutalabs.com/products/logrotate", "card": {"archived": false, "artifact_type": "cli-tool", "description": "The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files.", "domain": ["self-hosted", "operating-systems"], "enriched": true, "function": ["logging", "compression", "file-system", "cli", "scheduling"], "health_score": 84, "homepage": null, "language": "C", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["logrotate/logrotate"], "name": "logrotate/logrotate", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-01T00:43:50+00:00", "repo": "logrotate/logrotate", "stars": 1545, "tags": ["log-management", "log-rotation", "sysadmin", "unix-utility", "devops", "automation", "linux"], "topics": [], "urls": [], "use_cases": ["rotate apache or nginx log files daily", "compress old log files automatically", "delete logs older than 30 days", "rotate logs when they reach a certain size", "prevent log files from filling up disk space", "manage systemd journal or syslog rotation"], "what_it_is": "logrotate is a classic Unix utility that automates rotation, compression, removal, and mailing of log files on systems that generate many logs. It can be scheduled hourly, daily, weekly, monthly, or triggered by file size or elapsed time.", "when_to_avoid": ["you need centralized log aggregation or search (use ELK, Loki, etc.)", "you want structured JSON log shipping rather than file rotation", "you are on a platform without cron or systemd timers"], "when_to_choose": ["you administer Linux servers that produce many log files", "you need time- or size-based rotation with compression and retention", "you want a battle-tested standard tool available in every distro"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/logrotate", "repo": "logrotate/logrotate", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "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:05:01.509751+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.509751+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:35.852416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5eead2e588f6fb5edaa8c59a66a3baa7e40acfe496ca87b3c2d4e697fa64990", "fetched_at": "2026-08-28T04:05:01.509751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/logrotate/logrotate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4165, "days_push": 33, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}