A simple formatter for fastify's logs
npm install @fastify/one-line-logger



@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 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.
`js`
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
colorize: false,
},
},
});
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 can be used by passing it into logger opts. They can also overwrite the default level's colors. Check all the supported colors here.
`jsfatal
const server = fastify({
logger: {
transport: {
target: "@fastify/one-line-logger",
colors: {
35: "bgYellow",
45: "magenta",
60: "bgRedBright" // overwriting the 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.