Build Status Coverage Status


Check out the presentation/demo.

Log bespoke.js events and state to the console

The default events are logged by default, as are any custom events from plugins.

⚠️ This project has been archived

No future updates are planned. Feel free to continue using it, but expect no support.


Download the production version or the development version, or use a package manager.


This plugin is shipped in a UMD format, meaning that it is available as a CommonJS/AMD module or browser global.

For example, when using CommonJS modules:

var bespoke = require('bespoke'),
  logbook = require('bespoke-logbook');

bespoke.from('#presentation', [

When using browser globals:

bespoke.from('#presentation', [

Overriding event logging

You can override logging per eventName, either at instantiation or dynamically. You can pass false to turn off the specific logger, a plain string, or a function.

Custom events

The function will be called once before firing the event, and once after, with the result -

// Before the event handlers have been called
myCustomEventLoggingOverride("fire", eventName[, eventData, ...])

// After all event handlers have been called
myCustomEventLoggingOverride("fired", result, eventName[, eventData, ...])

Default events

The default events are fired a bit differently than custom events - they aren’t intercepted, but rather listened to.

// An event parameter is passed

Override at instantiation

bespoke.horizontal.from("article", {
    logbook: {
        overrides: {
            // An example of a default event
            "activate": function(e) {
                console.log("activate", "Slide #" + e.index + " was activated!", e.slide);
            // An example of a custom event
            "custom1": function() {
                console.log("Custom logging is so much fun", arguments)
            // An example of a custom event logged with a static string
            "custom2": "Will only log this string"

Override dynamically

bespoke.plugins.logbook.override("deactivate", function(e) {
    console.log("deactivate", "Slide #" + e.index + " was deactivated!", e.slide);

Enable/disable logbook

// logbook is making a lot of noise in the console

// logbook is good as dead

// logbook is back once again, with the ill behaviour

Package managers


$ npm install bespoke-logbook


$ bower install bespoke-logbook


  • Accept separate before/after custom event overrides.
  • Normalize default and custom event overrides.
  • Mimic the default event handlers’ event object?
  • Allow option to not autostart/enable logbook at instantiation.


Mark Dalgleish for bespoke.js and related tools. This plugin was built with generator-bespokeplugin.

Adam Edmond, addyeddy on flickr, for his photo Old log book (CC BY 2.0).

My best friend, bespoke-convenient, for continued support - rain and shine. I love you, man.


Copyright (c) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, Joel Purra All rights reserved.

When using bespoke-logbook, comply to the MIT license. Please see the LICENSE file for details, and the MIT License on Wikipedia.