log4js-rabbitmq-appenders
v1.1.2
Published
An appenders using rabbitmq to push message for log4js
Downloads
8
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/rabbitmq
host
-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 useloggingEvent
or 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");