MCPcopy
hub / github.com/mastra-ai/mastra / ConsoleLogger

Class ConsoleLogger

packages/_internal-core/src/logger/index.ts:243–342  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

241}
242
243export class ConsoleLogger extends MastraLogger {
244 protected component?: RegisteredLogger;
245 protected filter?: LogFilter;
246
247 constructor(options: ConsoleLoggerOptions = {}) {
248 super(options);
249 this.component = options.component;
250 this.filter = options.filter;
251 }
252
253 child(componentOrBindings: RegisteredLogger | Record<string, unknown>): ConsoleLogger {
254 const component =
255 typeof componentOrBindings === 'string'
256 ? componentOrBindings
257 : ((componentOrBindings?.component as RegisteredLogger) ?? this.component);
258 return new ConsoleLogger({
259 name: this.name,
260 level: this.level,
261 component,
262 filter: this.filter,
263 });
264 }
265
266 private shouldLog(level: LogLevel, message: string, args: unknown[]): boolean {
267 if (!this.filter) return true;
268 try {
269 return this.filter({ component: this.component, level, message, args });
270 } catch (e) {
271 console.error(`[Logger] Filter error for component=${this.component} level=${level}:`, e);
272 return true;
273 }
274 }
275
276 private prefix(): string {
277 return this.component ? `[${this.component}] ` : '';
278 }
279
280 debug(message: string, ...args: any[]): void {
281 if (this.level === LogLevel.DEBUG && this.shouldLog(LogLevel.DEBUG, message, args)) {
282 console.info(`${this.prefix()}${message}`, ...args);
283 }
284 }
285
286 info(message: string, ...args: any[]): void {
287 if (
288 (this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) &&
289 this.shouldLog(LogLevel.INFO, message, args)
290 ) {
291 console.info(`${this.prefix()}${message}`, ...args);
292 }
293 }
294
295 warn(message: string, ...args: any[]): void {
296 if (
297 (this.level === LogLevel.WARN || this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) &&
298 this.shouldLog(LogLevel.WARN, message, args)
299 ) {
300 console.warn(`${this.prefix()}${message}`, ...args);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…