Closed7
Next.js on Cloudflare Pages のエラー監視として Baselime を試す
Cloudflare Pages & Next.js 構成のアプリケーションに Baselime によるエラーモニタリングを入れるチャレンジ。
現在無料プランのみ。データ保持期間は7日間。記録できるイベント数は月10億回まで。
環境
- Next.js v14.2.7
- @baselime/edge-logger@0.4.2
npm i -S @baselime/edge-logger
Add service で監視対象のアプリを追加した。
ドキュメントに書かれた例を参考にロガーを作った。
import "server-only";
import { BaselimeLogger } from "@baselime/edge-logger";
import { v4 as uuidv4 } from "uuid";
type Params = {
message: string;
namespace: string;
};
class Logger {
private readonly service = "xxx-web";
private readonly dataset = "cloudflare";
private readonly apiKey = process.env.BASELIME_API_KEY!;
private readonly isLocalDev = process.env.NODE_ENV === "development";
private createLogger(namespace: string): BaselimeLogger {
return new BaselimeLogger({
service: this.service,
namespace,
dataset: this.dataset,
apiKey: this.apiKey,
ctx: { waitUntil: () => {}, passThroughOnException: () => {} },
requestId: uuidv4(),
isLocalDev: this.isLocalDev,
});
}
private async log(
level: "info" | "warn" | "error",
{ namespace, message }: Params,
) {
const logger = this.createLogger(namespace);
logger[level](message);
await logger.flush();
}
public info(params: Params) {
return this.log("info", params);
}
public error(params: Params) {
return this.log("error", params);
}
public warn(params: Params) {
return this.log("warn", params);
}
}
export const logger = new Logger();
適当なサーバーサイドでロガーを呼び出す。
await logger.error(`This is test error message`);
まずはローカルで起動しているアプリから試すと記録された
Cloudflare Pages にデプロイしても動いた。素晴らしい。
このスクラップは3ヶ月前にクローズされました