Crowlog - 同步上下文插件
此软件包是一个插件 Crowlog 记录器。它允许简单地使用节点合成上下文向日志添加上下文数据. 在 http 服务器中可以添加遵循请求生命周期的日志上下文(如请求 id或用户 id).
[大 此插件只支持可用的环境
async_hooks像节点.js或 带有相容旗帜的云旗工人。 。 。 .
安装
// pnpm
pnpm install @crowlog/logger @crowlog/async-context-plugin
// npm
npm install @crowlog/logger @crowlog/async-context-plugin
// yarn
yarn add @crowlog/logger @crowlog/async-context-plugin
使用量
使用插件, 首先创建一个带有插件的日志 :
import { createLogger } from '@crowlog/logger';
import { createAsyncContextPlugin, addLogContext, wrapWithLoggerContext } from '@crowlog/async-context-plugin';
const logger = createLogger({ namespace: 'my-app', plugins: [createAsyncContextPlugin()] });
// create a context, some initial context data can be added
wrapWithLoggerContext({ requestId: '123' }, () => {
addLogContext({ userId: '123' });
// logs within the context will have the requestId and userId
logger.info('Hello world');
});
实例
霍诺联合来文
import { createMiddleware } from 'hono';
import { addLogContext, wrapWithLoggerContext } from '@crowlog/async-context-plugin';
const loggerMiddleware = createMiddleware(async (context, next) => {
const requestId = getHeader({ context, name: 'x-request-id' }) ?? generateId();
await wrapWithLoggerContext({ requestId }, next);
});
const authMiddleware = createMiddleware(async (context, next) => {
const userId = /* get the user id from your auth layer */;
addLogContext({ userId });
await next();
});
import { Hono } from 'hono';
import { createLogger } from '@crowlog/logger';
import { createAsyncContextPlugin } from '@crowlog/async-context-plugin';
const app = new Hono();
const logger = createLogger({ namespace: 'my-app', plugins: [createAsyncContextPlugin()] });
app.use(loggerMiddleware);
app.use(authMiddleware);
app.get('/', (c) => {
// logs will have the requestId and userId
logger.info('Request received');
return c.json({ message: 'Hello World' });
});
许可证
这个项目根据麻省理工学院的许可证获得许可。 见 自由主义 文档以获取更多信息.