log4js-rabbitmq-appenders
v1.1.2
Published
An appenders using rabbitmq to push message for log4js
Readme
log4js-rabbitmq-appenders
This package is fork from @log4js-node/rabbitmq . That package has been unmaintained for a long time so I fix some bug here.
Configuration
Same as @log4js-node/rabbitmq .
type-@log4js-ndoe/rabbitmqhost-string(optional, defaults to127.0.0.1) - the location of the rabbitmq serverport-integer(optional, defaults to5672) - the port the rabbitmq server is listening onusername-string(optional, defaults toguest) - username to use when authenticating connection to rabbitmqpassword-string(optional, defaults toguest) - password to use when authenticating connection to rabbitmqrouting_key-string(optional, defaults tologstash) - rabbitmq message's routing_keydurable-string(optional, defaults to false) - will that RabbitMQ lose our queue.exchange-string(optional, defaults tolog)- rabbitmq send message's exchangemq_type-string(optional, defaults todirect) - rabbitmq message's mq_typevhost-string(optional, defaults to/) - vhost to uselayout-object(optional, defaults tomessagePassThroughLayout) - the layout to use for log events (see layouts).shutdownTimeout-integer(optional, defaults to10000) - maximum time in milliseconds to wait for messages to be sent during log4js shutdown.formatter-function(loggingEvent, layout?) => string(optional, default isloggingEvent => layout(loggingEvent)) - format function, default islayout. You can directly useloggingEventor change result when calllayout.
The appender will use the RabbitMQ Routing model command to send the log event messages to the channel.
Example
CommonJS:
const log4js = require('log4js');
const { RabbitmqAppenders } = require('log4js-rabbitmq-appenders');
log4js.configure({
appenders: {
mq: {
type: RabbitmqAppenders,
host: '127.0.0.1',
port: 5672,
username: '',
password: '',
routing_key: 'log',
exchange: 'log',
mq_type: 'direct',
durable: true,
layout: {
type: "pattern",
pattern: '%m',
},
formatter(loggingEvent, layout) {
return JSON.stringify(
{
level: loggingEvent.level.levelStr, data: layout(loggingEvent),
categoryName: loggingEvent.categoryName,
}
);
},
}
},
categories: { default: { appenders: ['mq'], level: 'info' } }
});
const log = log4js.getLogger();
log.info('hello');TypeScript:
import { configure, getLogger } from "log4js";
import { RabbitmqAppenders } from "log4js-rabbitmq-appenders";
configure({
appenders: {
mq: {
type: RabbitmqAppenders,
host: "127.0.0.1",
port: 5672,
username: "",
password: "",
routing_key: "log",
exchange: "log",
mq_type: "direct",
durable: true,
timeout: 100000,
layout: {
type: "pattern",
pattern: "%m",
},
formatter(loggingEvent: any, layout: any) {
return JSON.stringify({
level: loggingEvent.level.levelStr,
data: layout(loggingEvent),
categoryName: loggingEvent.categoryName,
});
},
},
},
categories: { default: { appenders: ["mq"], level: "info" } },
});
const logger = getLogger();
logger.info("hello");
