Templates
Project templates
Pick a stack, copy the snippet, and create a project with a matching name from the dashboard.
Next.js API
Route handlers and server actions — log requests, errors, and latency from App Router.
Suggested project: nextjs-api · environment: production
Create from templateRoute handler
import { createLogger } from "@marvink02/loggerman-sdk";
const logger = createLogger({
projectId: process.env.LOGGERMAN_PROJECT_ID!,
token: process.env.LOGGERMAN_TOKEN!,
baseUrl: process.env.LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
environment: "production",
});
export async function POST(req: Request) {
const started = Date.now();
try {
// ... your handler
await logger.info("api.checkout.completed", { durationMs: Date.now() - started });
return Response.json({ ok: true });
} catch (err) {
await logger.error("api.checkout.failed", { err: String(err) });
throw err;
}
}Cron job
Scheduled workers and background tasks — heartbeat, duration, and failure reasons.
Suggested project: cron-nightly · environment: production
Create from templateScheduled task
import { createLogger } from "@marvink02/loggerman-sdk";
const logger = createLogger({
projectId: process.env.LOGGERMAN_PROJECT_ID!,
token: process.env.LOGGERMAN_TOKEN!,
baseUrl: process.env.LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
environment: "production",
source: "cron.nightly_sync",
});
export async function runNightlySync() {
const started = Date.now();
await logger.info("cron.started");
try {
// ... sync work
await logger.info("cron.completed", { durationMs: Date.now() - started });
} catch (err) {
await logger.error("cron.failed", { err: String(err) });
process.exitCode = 1;
}
}Mobile app
React Native or Expo — capture client errors and navigation breadcrumbs.
Suggested project: mobile-app · environment: staging
Create from templateReact Native
import { createLogger } from "@marvink02/loggerman-sdk";
const logger = createLogger({
projectId: process.env.EXPO_PUBLIC_LOGGERMAN_PROJECT_ID!,
token: process.env.EXPO_PUBLIC_LOGGERMAN_TOKEN!,
baseUrl: process.env.EXPO_PUBLIC_LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
environment: "staging",
source: "mobile",
});
export function onNavigation(screen: string) {
void logger.info("screen.view", { screen });
}
export function reportClientError(error: unknown) {
void logger.error("client.unhandled", { error: String(error) });
}