{"id":21358562,"url":"https://github.com/logicblocks/cartus","last_synced_at":"2025-04-09T17:26:21.093Z","repository":{"id":37866924,"uuid":"280185956","full_name":"logicblocks/cartus","owner":"logicblocks","description":"A structured logging abstraction with multiple backends.","archived":false,"fork":false,"pushed_at":"2025-03-27T09:03:09.000Z","size":517,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-02T15:09:04.585Z","etag":null,"topics":["cambium","clojure","logger","logging","logs","structured-logging","testing"],"latest_commit_sha":null,"homepage":"https://logicblocks.github.io/cartus/","language":"Clojure","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/logicblocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-07-16T15:11:59.000Z","updated_at":"2025-03-27T09:03:06.000Z","dependencies_parsed_at":"2023-10-11T16:05:31.336Z","dependency_job_id":"191f75f4-813d-4410-b6bd-420e242f9d11","html_url":"https://github.com/logicblocks/cartus","commit_stats":{"total_commits":150,"total_committers":3,"mean_commits":50.0,"dds":0.4933333333333333,"last_synced_commit":"e8052399ec6e47aad52d3251ce7dd74a72d350ab"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logicblocks%2Fcartus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logicblocks%2Fcartus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logicblocks%2Fcartus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logicblocks%2Fcartus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logicblocks","download_url":"https://codeload.github.com/logicblocks/cartus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248076219,"owners_count":21043732,"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":["cambium","clojure","logger","logging","logs","structured-logging","testing"],"created_at":"2024-11-22T05:19:02.793Z","updated_at":"2025-04-09T17:26:21.078Z","avatar_url":"https://github.com/logicblocks.png","language":"Clojure","readme":"# cartus\n\n[![Clojars Project](https://img.shields.io/clojars/v/io.logicblocks/cartus.core.svg)](https://clojars.org/io.logicblocks/cartus.core)\n[![Clojars Downloads](https://img.shields.io/clojars/dt/io.logicblocks/cartus.core.svg)](https://clojars.org/io.logicblocks/cartus.core)\n[![GitHub Contributors](https://img.shields.io/github/contributors-anon/logicblocks/cartus.svg)](https://github.com/logicblocks/cartus/graphs/contributors)\n\nA structured logging abstraction for logging data rich events with support for \nmultiple backends, currently including:\n* a test logger for collecting logs in memory and asserting against \n  them; and\n* a [`cambium`](https://cambium-clojure.github.io/) logger for logging \n  out via [`SLF4J`](http://www.slf4j.org/) and \n  [`logback`](http://logback.qos.ch/).\n* a null logger that ignores all logged events, useful as a default \n  implementation or to turn off logging completely.\n  \nHeavily inspired by [JUXT's blog post on logging](https://juxt.pro/blog/logging).\n\n## Installation\n\nAdd the following to your `project.clj` file:\n\n```clojure\n[io.logicblocks/cartus.core \"0.1.18\"]\n```\n\nDepending on which backends you plan to use, add one or more of the following to\nyour `project.clj` file:\n\n```clojure\n[io.logicblocks/cartus.null \"0.1.18\"]\n[io.logicblocks/cartus.test \"0.1.18\"]\n[io.logicblocks/cartus.cambium \"0.1.18\"]\n```\n\nThe [`cambium`](https://cambium-clojure.github.io/) backend requires further\nconfiguration. See the \n[Getting Started](https://logicblocks.github.io/cartus/getting-started.html)\nguide for more details.\n\n## Documentation\n\n* [API Docs](http://logicblocks.github.io/cartus)\n* [Getting Started](https://logicblocks.github.io/cartus/getting-started.html)\n\n## Usage\n\n```clojure\n(require '[cartus.core :as log])\n(require '[cartus.cambium])\n\n(cartus.cambium/initialise)\n\n(def logger (cartus.cambium/logger))\n\n(log/info logger ::usage.demonstrated\n  {:feature-coverage \"3%\" :customer-satisfaction :low})\n(let [logger (log/with-context logger\n               {:see \"getting started guide\" :for \"more information\"})]\n  (log/debug logger ::usage.redirecting {:to \"API docs\"})\n  (log/error logger ::usage.irritating\n    {:joke \"running thin\"}\n    {:exception (ex-info \"Not funny!\" {:stick-to \"day job\"})}))\n```\n\n## License\n\nCopyright \u0026copy; 2023 LogicBlocks Maintainers\n\nDistributed under the terms of the \n[MIT License](http://opensource.org/licenses/MIT).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogicblocks%2Fcartus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogicblocks%2Fcartus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogicblocks%2Fcartus/lists"}