Skip to content

AIDK API Reference / aidk-kernel / Logger

Variable: Logger ​

ts
const Logger: {
  get level(): LogLevel;
  child: KernelLogger;
  configure: void;
  create: KernelLogger;
  for: KernelLogger;
  get: KernelLogger;
  isLevelEnabled: boolean;
  reset: void;
  setLevel: void;
};

Defined in: packages/kernel/src/logger.ts:355

Logger singleton for AIDK applications.

Provides structured logging with automatic context injection from the current execution context (via AsyncLocalStorage).

Type Declaration ​

NameTypeDescriptionDefined in
get levelLogLevelGet the current log level.packages/kernel/src/logger.ts:471
child()(bindings: Record<string, unknown>) => KernelLoggerCreate a child logger with custom bindings. Example const requestLog = Logger.child({ request_id: req.id }); requestLog.info('Handling request');packages/kernel/src/logger.ts:445
configure()(config: LoggerConfig) => voidConfigure the global logger. Should be called once at application startup. Example Logger.configure({ level: process.env.LOG_LEVEL ?? 'info', transport: { targets: [ { target: 'pino-pretty', options: { colorize: true } }, { target: 'pino/file', options: { destination: './logs/app.log' } }, ], }, });packages/kernel/src/logger.ts:375
create()(config: LoggerConfig) => KernelLoggerCreate a standalone logger instance with custom config. Does not affect the global logger. Example const auditLog = Logger.create({ level: 'info', transport: { target: 'pino/file', options: { destination: './audit.log' } }, });packages/kernel/src/logger.ts:464
for()(nameOrComponent: string | object) => KernelLoggerCreate a child logger scoped to a component or name. Example // With string name const log = Logger.for('CalculatorTool'); // With object (uses class name) class MyAgent { private log = Logger.for(this); }packages/kernel/src/logger.ts:427
get()() => KernelLoggerGet the global logger instance. Context is automatically injected into every log. Example const log = Logger.get(); log.info('Processing', { items: 5 }); // Output includes executionId, userId, trace_id, etc.packages/kernel/src/logger.ts:406
isLevelEnabled()(level: LogLevel) => booleanCheck if a level is enabled.packages/kernel/src/logger.ts:490
reset()() => voidReset the global logger (mainly for testing).packages/kernel/src/logger.ts:497
setLevel()(level: LogLevel) => voidSet the log level at runtime.packages/kernel/src/logger.ts:480

Example ​

typescript
// Configure at app startup
Logger.configure({ level: 'debug' });

// Get logger (context auto-injected)
const log = Logger.get();
log.info('Request received');

// Create child logger for a component
const componentLog = Logger.for('MyComponent');
componentLog.debug('Initializing');

// Or from an object (uses constructor name)
class MyTool {
  private log = Logger.for(this);
}

Released under the MIT License.