Custom logging

By default, SDKs output info and error logs to the console.

You can provide a custom logging callback to capture and forward logs elsewhere, e.g. to your monitoring infrastructure, by setting localLogger in your createSource options:

src/lib/getHypertune.ts
import { createSource } from "../generated/hypertune";

const hypertuneSource = createSource({
  token: process.env.HYPERTUNE_TOKEN!,
  localLogger: (level, message, metadata) => {
    console.log(level, message, metadata);
  },
});

export default async function getHypertune() {
  // Get flag updates in serverless environments
  // await hypertuneSource.initIfNeeded();

  return hypertuneSource.root({
    args: {
      context: {
        environment:
          process.env.NODE_ENV === "development"
            ? "development"
            : "production",
        user: { id: "1", name: "Test", email: "hi@test.com" },
      },
    },
  });
}

localLogger?: (
  level: LogLevel,
  message: string,
  metadata: object
) => void;

enum LogLevel {
  Debug = 'Debug',
  Error = 'Error',
  Info = 'Info',
  Warn = 'Warn'
}

Last updated