Bunyan to Windows Eventlog Stream

Usage no npm install needed!

<script type="module">
  import bunyanWindowsEventlog from 'https://cdn.skypack.dev/bunyan-windows-eventlog';



Latest Version

bunyan to windows eventlog stream

Middleware connecting the excellent bunyan logging system to the windows eventlog. It relies on the native Windows API implementation of the node-windows-eventlog package.


npm install bunyan-windows-eventlog --save 

Note concerning the compilation of the native module windows-eventlog:

Please check out the readme of the windows-eventlog module for information regarding its compilation.

Additionally, make sure you have the latest npm version installed and you are compiling the native module with the same version of node you intend to use your application with.

I am currently investigating the possibility to compile the native module from a Docker based linux container.

Note concerning Webpack:

When using Webpack you will have to additionally install the node-loader package and make sure that the module property in your webpack.config.js contains the following entry:

module: {
    loaders: [
        { test: /\.node$/, loader: "node-loader" }


Require the library:

var WindowsEventLog = require('bunyan-windows-eventlog');

Instantiate your bunyan logger:

var appName = 'MyApp';
var log = bunyan.createLogger({
    name: appName,
    streams: {
        level: 'info',
        type: 'raw',
        stream: new WindowsEventLog({ 
            appName: appName 
    level: 'info'

Create a log entry:

    foo: 'bar'
}, 'hello world');


The windows eventlog only knows three basic loglevels: info, warning and error. The bunyan loglevels currently have the following hardwired mapping:

  • 10 trace -> ignored
  • 20 debug -> ignored
  • 30 info -> info
  • 40 warning -> warning
  • 50 error -> error
  • 60 fatal -> error

This mapping is planned become configurable in one of the next releases.



  • Cosmetics


  • Removes Win32 restrictions to enable compilation on Linux and its derivatives


  • Cosmetic Changes


  • Enable custom loglevel mapping
  • Enable custom status id setting (windows-eventlog update necessary)
  • Tests


MIT License. (c) 2016 Jens Habegger.