{"id":16400628,"url":"https://github.com/maraisr/workers-logger","last_synced_at":"2025-03-16T16:31:46.147Z","repository":{"id":47283768,"uuid":"400187416","full_name":"maraisr/workers-logger","owner":"maraisr","description":"🪵 Fast effective logging for Cloudflare Workers","archived":false,"fork":false,"pushed_at":"2023-06-28T08:02:01.000Z","size":58,"stargazers_count":50,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-19T12:03:09.895Z","etag":null,"topics":["cloudflare-workers","logging","reporter","workers"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/maraisr.png","metadata":{"funding":{"github":"maraisr"},"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":"2021-08-26T13:55:59.000Z","updated_at":"2024-09-19T18:13:41.000Z","dependencies_parsed_at":"2024-10-19T08:48:56.958Z","dependency_job_id":"2c169499-7535-44f4-bb61-279d9b07f325","html_url":"https://github.com/maraisr/workers-logger","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.17647058823529416","last_synced_commit":"2c16fa9eac0229bbaa1e246d86f9a2b8f77d2656"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maraisr%2Fworkers-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maraisr%2Fworkers-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maraisr%2Fworkers-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maraisr%2Fworkers-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maraisr","download_url":"https://codeload.github.com/maraisr/workers-logger/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243822293,"owners_count":20353499,"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":["cloudflare-workers","logging","reporter","workers"],"created_at":"2024-10-11T05:28:12.542Z","updated_at":"2025-03-16T16:31:46.132Z","avatar_url":"https://github.com/maraisr.png","language":"TypeScript","funding_links":["https://github.com/sponsors/maraisr","https://www.buymeacoffee.com/marais"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"left\"\u003e\n\n\u003csamp\u003e\n\n# workers-logger [![licenses](https://licenses.dev/b/npm/workers-logger?style=dark)](https://licenses.dev/npm/workers-logger)\n\n\u003c/samp\u003e\n\nFast and effective logging for [Cloudflare Workers](https://workers.cloudflare.com/).\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003csup\u003e\n\nThis is free to use software, but if you do like it, consider supporting me ❤️\n\n[![sponsor me](https://badgen.net/badge/icon/sponsor?icon=github\u0026label\u0026color=gray)](https://github.com/sponsors/maraisr)\n[![buy me a coffee](https://badgen.net/badge/icon/buymeacoffee?icon=buymeacoffee\u0026label\u0026color=gray)](https://www.buymeacoffee.com/marais)\n\n\u003c/sup\u003e\n\n\u003c/div\u003e\n\n## ⚡️ Features\n\n- Super [light weight](https://npm.anvaka.com/#/view/2d/workers-logger)\n- Custom [Reporters](#Reporters)\n- Built on top of [`diary`](https://github.com/maraisr/diary)\n- Optimized to not hinder critical path\n\n## ⚙️ Install\n\n```sh\nnpm add workers-logger\n```\n\n## 🚀 Usage\n\n```ts\nimport { track } from 'workers-logger';\n\naddEventListener('fetch', (event) =\u003e {\n\tconst { request } = event;\n\tconst log = track(request);\n\n\tlog.info('gearing up to make a response');\n\n\tconst res = new Response('hi there');\n\n\tevent.waitUntil(log.report(res));\n\n\treturn res;\n});\n```\n\n\u003e to see more visit [examples](/examples)\n\n## 🔎 API\n\n### track(request: Request, name?: string, reporter?: Reporter)\n\nReturns [log functions](https://github.com/maraisr/diary#log-functions) and our\n[`.report`](#reportresponse-response) method.\n\n#### report(response: Response)\n\nReturns a promise with intended usage with `event.waitUntil`. And thus in terns runs your\n[`reporter`](#reporters) defined on track.\n\n## Reporters\n\nA reporter is a single function ran at then end of [`.report`](#reportresponse-response). And gives\nyou the ability to send that data somewhere, or merely into\n[dashboard logs](https://blog.cloudflare.com/introducing-workers-dashboard-logs/).\n\n```ts\nimport type { Reporter } from 'workers-logger';\nimport { track } from 'workers-logger';\n\nconst reporter: Reporter = (events, { req, res }) =\u003e {\n\t// do whatever you want\n};\n\naddEventListener('fetch', (event) =\u003e {\n\tconst { request } = event;\n\tconst log = track(request, 'my-worker', reporter);\n\n\tlog.info('gearing up to make a response');\n\n\tconst res = new Response('hi there');\n\n\tevent.waitUntil(log.report(res));\n\n\treturn res;\n});\n```\n\n\u003e example when sending into [Logflare](https://logflare.app/) at\n\u003e [/examples/workers/logflare](/examples/workers/logflare/index.ts)\n\n## License\n\nMIT © [Marais Rossouw](https://marais.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaraisr%2Fworkers-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaraisr%2Fworkers-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaraisr%2Fworkers-logger/lists"}