Logger
Logger
The Logger is responsible for all logging in a Vendure application.
It is intended to be used as a static class:
Example
import { Logger } from '@vendure/core';
Logger.info(`Some log message`, 'My Vendure Plugin');
The actual implementation - where the logs are written to - is defined by the VendureLogger instance configured in the VendureConfig. By default, the DefaultLogger is used, which logs to the console.
Implementing a custom logger
A custom logger can be passed to the logger
config option by creating a class which implements the
VendureLogger interface. For example, here is how you might go about implementing a logger which
logs to a file:
Example
import { VendureLogger } from '@vendure/core';
import fs from 'fs';
// A simple custom logger which writes all logs to a file.
export class SimpleFileLogger implements VendureLogger {
private logfile: fs.WriteStream;
constructor(logfileLocation: string) {
this.logfile = fs.createWriteStream(logfileLocation, { flags: 'w' });
}
error(message: string, context?: string) {
this.logfile.write(`ERROR: [${context}] ${message}\n`);
}
warn(message: string, context?: string) {
this.logfile.write(`WARN: [${context}] ${message}\n`);
}
info(message: string, context?: string) {
this.logfile.write(`INFO: [${context}] ${message}\n`);
}
verbose(message: string, context?: string) {
this.logfile.write(`VERBOSE: [${context}] ${message}\n`);
}
debug(message: string, context?: string) {
this.logfile.write(`DEBUG: [${context}] ${message}\n`);
}
}
// in the VendureConfig
export const config = {
// ...
logger: new SimpleFileLogger('server.log'),
}
Signature
class Logger implements LoggerService {
logger: VendureLogger
error(message: string, context?: string, trace?: string) => void;
warn(message: string, context?: string) => void;
info(message: string, context?: string) => void;
verbose(message: string, context?: string) => void;
debug(message: string, context?: string) => void;
}
- Implements:
LoggerService
logger
property
error
method
(message: string, context?: string, trace?: string) => void
warn
method
(message: string, context?: string) => void
info
method
(message: string, context?: string) => void
verbose
method
(message: string, context?: string) => void
debug
method
(message: string, context?: string) => void