Next
LogSnag client for Next applications
Installation
Using npm
npm install @logsnag/nextUsing yarn
yarn add @logsnag/nextUsing pnpm
pnpm add @logsnag/nextUsage
The usage depends on whether you are using the app directory structure or the pages directory structure.
Set your token's scope to
publicin the LogSnag dashboard
App Directory:
In the app directory, you need to import the LogSnagProvider as a head element in your root layout component:
import { LogSnagProvider } from '@logsnag/next';
export default function RootLayout({
children
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<head>
<LogSnagProvider token='<TOKEN_NAME>' project='<PROJECT_NAME>' />
{/* Other head elements */}
</head>
<body>
{/* Your layout */}
<main>{children}</main>
</body>
</html>
);
}For setting the user id in server components, use the SetUserIdServerComponent:
Pages Directory:
In the pages directory, you can wrap your app with the LogSnagProvider, similar to how you would do in a React application:
Hooks
The useLogSnag hook can be used across your client components and provides the following methods:
track(options: TrackOptions): Track custom events.identify(options: IdentifyOptions): Identify user traits.setUserId(userId: string | null): Set the user id for the current user. If the user is not logged in, pass null.clearUserId(): Clear the user id for the current user.setDebug(flag: boolean = true): Set debug mode for logging.
Usage:
These hooks have the same usage as their counterparts in the @logsnag/react package.
Tracking Events
You can also track events directly from HTML elements using data attributes:
In this example, when the button is clicked, an event named "Upgraded Plan" will be tracked with the specified tags.
Server-side Usage with Next
For server-side usage, you can use LogSnag from @logsnag/next/server It behaves similarly to @logsnag/node
Use a different token for server-side usage and set its scope to
privatein the LogSnag dashboard.
Last updated
Was this helpful?