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 ​
| Name | Type | Description | Defined in |
|---|---|---|---|
get level | LogLevel | Get the current log level. | packages/kernel/src/logger.ts:471 |
child() | (bindings: Record<string, unknown>) => KernelLogger | Create 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) => void | Configure 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) => KernelLogger | Create 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) => KernelLogger | Create 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() | () => KernelLogger | Get 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) => boolean | Check if a level is enabled. | packages/kernel/src/logger.ts:490 |
reset() | () => void | Reset the global logger (mainly for testing). | packages/kernel/src/logger.ts:497 |
setLevel() | (level: LogLevel) => void | Set 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);
}