Recipes
Custom logger
Replace Aponia system output with an application-specific LoggerService.
import type { LoggerService } from "@aponiajs/common";
import { AponiaFactory } from "@aponiajs/platform-elysia";
import { AppModule } from "../src/app.module.ts";
class ApplicationLogger implements LoggerService {
log(message: unknown, ...parameters: unknown[]): void {
console.log(message, ...parameters);
}
fatal(message: unknown, ...parameters: unknown[]): void {
console.error(message, ...parameters);
}
error(message: unknown, ...parameters: unknown[]): void {
console.error(message, ...parameters);
}
warn(message: unknown, ...parameters: unknown[]): void {
console.warn(message, ...parameters);
}
}
const application = await AponiaFactory.create(AppModule, {
logger: new ApplicationLogger(),
});The final parameter on system events is the framework subsystem context. A custom logger can use it for routing or structured fields.
For built-in JSON lines, prefer:
import { ConsoleLogger } from "@aponiajs/common";
const logger = new ConsoleLogger({ json: true });