@fastify/one-line-logger

中文文档
2.2.1发布于 2026/10/10MITTypeScriptCommonJS构建来源已验证近 30 天下载 10.3万

用于固定日志的简单格式

中文使用文档
文档目录8 节
  1. 安装
  2. 开始
  3. 颜色
  4. 自定义级别
  5. 自定义级别颜色
  6. 仅限时间格式
  7. 自定义时间格式
  8. 许可证

@ fastify/ 一行浏览器

CI NPM version neostandard javascript style

@fastify/one-line-logger 帮助您将 setify 的日志格式化为很好的一行消息 :

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

标准收到的请求日志行如下:

{"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"}

将格式化为:

2022-08-11 01:08:02.194+0100 - info - GET / - incoming request

安装

npm i @fastify/one-line-logger

开始

const server = fastify({
  logger: {
    transport: {
      target: "@fastify/one-line-logger",
    },
  },
});

颜色

在支持时默认启用颜色 。 要手动禁用设置所需的颜色 transport.colorize 选项到 false选项 colorette 文档。 。 。 .

const server = fastify({
  logger: {
    transport: {
      target: "@fastify/one-line-logger",
      colorize: false,
    },
  },
});

自定义级别

自定义级别可以通过传递到日志选择中来使用

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

自定义级别颜色

自定义级别颜色可以通过传递到日志选择中来使用. 它们也可以覆盖默认关卡的颜色. 检查所有支持的颜色 这里。 。 。 .

const server = fastify({
  logger: {
    transport: {
      target: "@fastify/one-line-logger",
      options: {
        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 occurred");
  request.log.foo("FOO!");
  request.log.bar("BAR!");
  reply.send({ foobar: true });
});

仅限时间格式

仅输出没有日期和时区的时间 :

const server = fastify({
  logger: {
    transport: {
      target: "@fastify/one-line-logger",
      options: { timeOnly: true }
    }
  }
});

输出 : 01:08:02.194 - info - GET / - incoming request

自定义时间格式

使用 customTimeFormat 选项 日期格式 样式 :

const server = fastify({
  logger: {
    transport: {
      target: "@fastify/one-line-logger",
      options: { customTimeFormat: "HH:MM:ss" }
    }
  }
});

常见模式 :

  • "HH:MM:ss" → 01:08:02
  • "yyyy-mm-dd HH:MM:ss" → 2022-08-11 01:08:02
  • "isoDateTime" → 2022-08-11T01:08:02+0100

说明: timeOnly 财务报告和审定财务报表 customTimeFormat 它们是相互排斥的,不能一起使用.

许可证

许可证根据 麻省理工学院。 。 。 .

版本与发布记录

@fastify/one-line-logger 共发布 13 个版本,首次发布于 2022/08/17;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.2.1latest2026/10/101 个月前
2.2.02026/08/083 个月前
2.1.02026/01/1110 个月前
2.0.22025/01/111.8 年前
2.0.12024/11/122 年前
2.0.02024/09/062 年前

其他发布通道:next → 2.0.0-pre.fv5.1。

关于 @fastify/one-line-logger 的常见问题

@fastify/one-line-logger 是什么?

用于固定日志的简单格式

如何安装 @fastify/one-line-logger?

在项目目录运行 npm install @fastify/one-line-logger,或使用 pnpm add / yarn add / bun add。

@fastify/one-line-logger 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fastify/one-line-logger 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fastify/one-line-logger 可以商用吗?

@fastify/one-line-logger 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fastify/one-line-logger 的下载量有多少?

根据 npm 官方下载统计,@fastify/one-line-logger 在 2026/10/15 – 2026/11/13 这 30 天内被下载 103,062 次,日均约 3,435 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fastify/one-line-logger 还在维护吗?

最新版本 2.2.1 发布于 2026/10/10(1 个月前);至今共发布 13 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/08/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。