Skip to content

fastify/one-line-logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7ed65cd · Mar 7, 2025

History

57 Commits
Mar 7, 2025
Jan 10, 2025
Jan 10, 2025
Jan 4, 2025
Dec 13, 2024
Oct 7, 2023
Nov 12, 2024
Dec 5, 2022
Aug 17, 2022
Feb 3, 2025
Dec 13, 2024
Jun 12, 2024
Jan 11, 2025

Repository files navigation

@fastify/one-line-logger

CI NPM version neostandard javascript style

@fastify/one-line-logger helps you format fastify's log into a nice one-line message:

YYYY-MM-dd HH:mm:ss.SSSTZ - <level> - <method> <route path> - <message>

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

Install

npm i @fastify/one-line-logger

Getting started

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.

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

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.

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 });
});

License

Licensed under MIT.