Push log events to a Rabbitmq MQ. Require log4js-node 2.x or later.
npm install @log4js-node/rabbitmq
If you want to be sure that all messages have been sent before your programme exits, remember to call log4js.shutdown(<callback function>)
.
type
-@log4js-ndoe/rabbitmq
protocol
-string
(optional, defaults toamqp
) - the port the rabbitmq protocol option:amqps
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.frameMax
-integer
(optional, defaults to0
) - The size in bytes of the maximum frame allowed over the connection. 0 means no limit (but since frames have a size field which is an unsigned 32 bit integer, it’s perforce 2^32 - 1); I default it to 0x1000, i.e. 4kb, which is the allowed minimum, will fit many purposes, and not chug through Node.JS’s buffer pooling. referenceheartbeat
-integer
(optional, defaults to0
) - The period of the connection heartbeat, in seconds. To learn more about the heartbeat option click herekeepAliveDelay
-integer
(optional, defaults to0
) - time to send a keepAlive ping to avoid network killing quiet sockets.
The appender will use the RabbitMQ Routing model command to send the log event messages to the channel.
log4js.configure({
appenders: {
mq: {
type: '@log4js-node/rabbitmq',
host: '127.0.0.1',
port: 5672,
username: 'guest',
password: 'guest',
routing_key: 'logstash',
exchange: 'exchange_logs',
mq_type: 'direct',
durable: true
}
},
categories: { default: { appenders: ['mq'], level: 'info' } }
});
This configuration will push log messages to the rabbitmq on 127.0.0.1:5672
.