https://github.com/maraisr/workers-logger
🪵 Fast effective logging for Cloudflare Workers
https://github.com/maraisr/workers-logger
cloudflare-workers logging reporter workers
Last synced: 7 months ago
JSON representation
🪵 Fast effective logging for Cloudflare Workers
- Host: GitHub
- URL: https://github.com/maraisr/workers-logger
- Owner: maraisr
- License: mit
- Created: 2021-08-26T13:55:59.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-28T08:02:01.000Z (over 2 years ago)
- Last Synced: 2024-10-19T12:03:09.895Z (about 1 year ago)
- Topics: cloudflare-workers, logging, reporter, workers
- Language: TypeScript
- Homepage:
- Size: 56.6 KB
- Stars: 50
- Watchers: 3
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# workers-logger [](https://licenses.dev/npm/workers-logger)
Fast and effective logging for [Cloudflare Workers](https://workers.cloudflare.com/).
This is free to use software, but if you do like it, consider supporting me ❤️
[](https://github.com/sponsors/maraisr)
[](https://www.buymeacoffee.com/marais)
## ⚡️ Features
- Super [light weight](https://npm.anvaka.com/#/view/2d/workers-logger)
- Custom [Reporters](#Reporters)
- Built on top of [`diary`](https://github.com/maraisr/diary)
- Optimized to not hinder critical path
## ⚙️ Install
```sh
npm add workers-logger
```
## 🚀 Usage
```ts
import { track } from 'workers-logger';
addEventListener('fetch', (event) => {
const { request } = event;
const log = track(request);
log.info('gearing up to make a response');
const res = new Response('hi there');
event.waitUntil(log.report(res));
return res;
});
```
> to see more visit [examples](/examples)
## 🔎 API
### track(request: Request, name?: string, reporter?: Reporter)
Returns [log functions](https://github.com/maraisr/diary#log-functions) and our
[`.report`](#reportresponse-response) method.
#### report(response: Response)
Returns a promise with intended usage with `event.waitUntil`. And thus in terns runs your
[`reporter`](#reporters) defined on track.
## Reporters
A reporter is a single function ran at then end of [`.report`](#reportresponse-response). And gives
you the ability to send that data somewhere, or merely into
[dashboard logs](https://blog.cloudflare.com/introducing-workers-dashboard-logs/).
```ts
import type { Reporter } from 'workers-logger';
import { track } from 'workers-logger';
const reporter: Reporter = (events, { req, res }) => {
// do whatever you want
};
addEventListener('fetch', (event) => {
const { request } = event;
const log = track(request, 'my-worker', reporter);
log.info('gearing up to make a response');
const res = new Response('hi there');
event.waitUntil(log.report(res));
return res;
});
```
> example when sending into [Logflare](https://logflare.app/) at
> [/examples/workers/logflare](/examples/workers/logflare/index.ts)
## License
MIT © [Marais Rossouw](https://marais.io)