Logger
An Angular Logger service with multiple Appenders.
Install
$ npm i @stomp/logger
Usage
Create an Injectable class and a way to create it in logger-service.ts
@Injectable({
providedIn: 'root',
})
export class LoggerService extends Logger {}
const userId = '9be7ecd3-b706-43ee-9114-628241a808bd';
const sessionId = '972e139d-2426-4955-b2f9-74532e790722';
export function initLoggerService(rxStomp: RxStompService): LoggerService {
const stompAppenderConfig = {
dest: '/exchange/user-log',
level: LogLevel.DEBUG,
formatter: message => ({
headers: {
user: userId,
session: sessionId,
ts: `${Date.now()}`,
},
message,
}),
};
const stompAppender = new StompAppender(stompAppenderConfig, rxStomp);
const consoleAppender = new ConsoleAppender({
level: LogLevel.DEBUG,
formatter: message => [new Date(), message],
});
const config: LoggerConfig = {
appenders: [stompAppender, consoleAppender],
};
return new LoggerService(config);
}
Provide a LoggerService
, typically in app.modules.ts
@NgModule({
providers: [
{
provide: LoggerService,
useFactory: initLoggerService,
deps: [RxStompService],
},
],
bootstrap: [AppComponent],
})
To log messages:
logger.debug('my debug message');
New Appender
Implementing a new Appender is not complicated.
See code for existing Appenders for help.
Watching the messages live
To watch the messages live, please use the watch.rb ruby script
(using bunny
gem for AMQP).