winston-csv-format

writes winston logs in csv format

Usage no npm install needed!

<script type="module">
  import winstonCsvFormat from 'https://cdn.skypack.dev/winston-csv-format';
</script>

README

winston-csv-format

writes winston logs in csv format.

Version Bundle size Downloads

CodeFactor SonarCloud Codacy Total alerts Language grade Scrutinizer

Dependencies Security Build Status Coverage Status

Commit activity FOSSA License

Table of Contents

Motivation

If you're struggling to format your logs/reports as .csv files (or prepare import to Excel or Google Spreadsheet), this package can be a cure. Now you can use all power of winston logger, formating your data as comma-separated values.

Requirements

Platform Status

To use library you need to have node and npm installed in your machine:

  • node >=10
  • npm >=6

Package is continuously tested on darwin, linux and win32 platforms. All active and maintenance LTS node releases are supported.

Installation

To install the library run the following command

  npm i --save winston-csv-format

Usage

The package can be used as the formatter alongside any winston transport. Default export is a constructor function. It has 2 arguments: an array of fields and an options object. Note that fields must match keys of logged objects:

import CSV from 'winston-csv-format';
import { createLogger, transports } from 'winston';

const csvHeaders = {
    created : 'Creation Date',
    size    : 'Size',
    status  : 'Status'
};

const logger = createLogger({
    level      : 'info',
    format     : CSV([ 'created', 'status' ], { delimiter: ',' }),
    transports : [ new transports.Console() ]
});

logger.log('info', csvHeaders); // write headers

Configuration

Next values can be configured as options:

  • delimiter - delimiter between fields (';' by default)
  • missed - value, used when original value is missed in the logged object (empty string by default)

Migration Guide

Check Migration Guide to upgrade the next major version. Upgrade to minor/patch versions should happen without additional interventions. See detailed Changelog for a list of changes.

Contribute

Make the changes to the code and tests. Then commit to your branch. Be sure to follow the commit message conventions. Read Contributing Guidelines for details.