Narwhals Prolong Mischief
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


0.2.4 • Public • Published


Version Downloads Build Status Dependency Status Coverage Status

This Hubot plugin enables various operations related to logging:

  • record all messages on configured channels to an ElasticSearch server
  • enable various commands to interact and query the logs
  • serve web pages to browse the logs
  • announce to users joining a channel where they can find the logs web page

If you only need to log to ElasticSearch, you can rather use hubot-elasticsearch-logger which only does that.

For low volume channel or for testing purpose, you can use the free service of elasticsearch hosting.

Warning: This plugin is still in alpha stage. use with caution. It is designed to work fine with the hubot-irc adapter. Later on it will be tested on slack, gitter and others.


In your hubot dir:

npm install hubot-es-logger --save

Then add to your external-scripts.json

[ 'hubot-es-logger' ]


You will need to set various environment variables to get the logging configured

Variable required default description
HUBOT_BASE_URL yes the default url where your hubot web server can be reached. By default hubot launches express on port 8080
ES_LOG_ENABLED no 'false' useful to disable logging at bot start in dev env
ES_LOG_ANNOUNCE no 'false' if set, will private message to people joining the channel, signaling the url where to browse the logs
ES_LOG_ES_URL yes the url to your Elasticsearch server
ES_LOG_ROOMS yes comma-separated list of channels to log ie '#trolls,#another_channel,#third'
ES_LOG_INDEX_NAME no 'irclogs' name of the Elasticsearch index
ES_LOG_SINGLE_INDEX no 'false' if 'true', it will use only one index, but by default, one index is created per day
ES_LOG_KIBANA_URL no if you have a kibana access to your irc logs, it will be displayed on the web page
ES_LOG_KIBANA_TEMPLATE no the template used in kibana (for building the url)

Web interface

Make sure you secure your web interface appropriately (with hubot-restrict-ip or putting hubot behind a proxy).

The web interface for now only shows the last 24 hours of discussion, but it will be configurable, searchable and navigable soon in next versions.


  • test coverage (in progress)
  • log the bot (done 0.1.1)
  • log the join and part of users (done 0.1.1)
  • add an indication of logs enabled/disabled to the .logs command
  • improve error management for web part in case there is no index
  • add search features on web interface (done in 0.2.0)
  • add time navigation on web interface (done 0.1.2)
  • test with slack adapter
  • setup a backend pagination system in case of huge quantity of logs per day


Feel free to open a PR if you find any bug, typo, want to improve documentation, or think about a new feature.

Gandi loves Free and Open Source Software. This project is used internally at Gandi but external contributions are very welcome.



  • @mose - author and maintainer


This source code is available under MIT license.


Copyright (c) 2016 - Gandi -


npm i hubot-es-logger

Downloadsweekly downloads








last publish


  • avatar
  • avatar