https://github.com/fastify/one-line-logger
Helps you format fastify's log into a nice one line message
https://github.com/fastify/one-line-logger
fastify-library
Last synced: about 1 year ago
JSON representation
Helps you format fastify's log into a nice one line message
- Host: GitHub
- URL: https://github.com/fastify/one-line-logger
- Owner: fastify
- License: mit
- Created: 2022-07-13T08:45:00.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-07T19:07:09.000Z (about 1 year ago)
- Last Synced: 2025-03-29T11:08:35.745Z (about 1 year ago)
- Topics: fastify-library
- Language: JavaScript
- Homepage: https://npmjs.com/package/@fastify/one-line-logger
- Size: 66.4 KB
- Stars: 40
- Watchers: 7
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/fastify/one-line-logger/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@fastify/one-line-logger)
[](https://github.com/neostandard/neostandard)
`@fastify/one-line-logger` helps you format fastify's log into a nice one-line message:
```
YYYY-MM-dd HH:mm:ss.SSSTZ - - -
```
A standard incoming request log line like:
```
{"level": 30,"time": 1660151282194,"pid": 1557,"hostname": "foo","reqId": "req-1","req": {"method": "GET","url": "/path","hostname": "localhost:8080","remoteAddress": "127.0.0.1"},"msg": "incoming request"}
```
Will format to:
```
2022-08-11 01:08:02.194+0100 - info - GET / - incoming request
```
```
npm i @fastify/one-line-logger
```
```js
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
},
},
});
```
## Colors
Colors are enabled by default when supported. To manually disable the colors you need to set the `transport.colorize` option to `false`. For more options check the `colorette` [docs](https://github.com/jorgebucaran/colorette?tab=readme-ov-file#environment).
```js
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
colorize: false,
},
},
});
```
## Custom levels
Custom levels could be used by passing it into logger opts
```js
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
},
customLevels: {
foo: 35,
bar: 45,
},
},
});
server.get("/", (request, reply) => {
request.log.info("time to foobar");
request.log.foo("FOO!");
request.log.bar("BAR!");
reply.send({ foobar: true });
});
```
## Custom level colors
Custom level colors can be used by passing it into logger opts. They can also overwrite the default level's colors. Check all the supported colors [here](https://github.com/jorgebucaran/colorette?tab=readme-ov-file#supported-colors).
```js
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
colors: {
35: "bgYellow",
45: "magenta",
60: "bgRedBright" // overwriting the `fatal` log color
}
},
customLevels: {
foo: 35,
bar: 45,
},
},
});
server.get("/", (request, reply) => {
request.log.fatal("An error occured");
request.log.foo("FOO!");
request.log.bar("BAR!");
reply.send({ foobar: true });
});
```
Licensed under [MIT](./LICENSE).