m0ss

`winston-azure-blob`

TypeScript
JavaScript
API

Project: winston-azure-blob

View on GitHub

winston-azure-blob

An Azure Blob transport for winston3

![NPM](https://www.npmjs.com/package/winston-azure-blob)

Highlights

  • :heavy_check_mark: Simple API
    • Easy to use API with sensible defaults
  • :large_blue_circle: Typescript ready
  • :closed_lock_with_key: SAS support
    • Use a Shared Access Signature or key/name auth
  • :wrench: Highly configurable
    • Lots of options for customization in specific use cases
  • :cloud: Modern

Installation

yarn install winston
yarn install winston-azure-blob

Usage

import * as winston from "winston";
import { winstonAzureBlob, extensions } from "winston-azure-blob";

const logger = winston.createLogger({
  format: winston.format.combine(
      winston.format.timestamp(),
      winston.format.splat(),
      winston.format.json()
  ),
  transports: [
    winstonAzureBlob({
      account: {
        name: "Azure storage account sub domain ([A-Za-z0-9])",
        key: "The long Azure storage secret key"
        // or
        host: 'The host address',
        sasToken: 'The Shared Access Signature token'
        // or
        connectionString: 'A connection string for the storage account'
      },
      blobName: "The name of the blob",
      bufferLogSize : 1,
      containerName: "A container name",
      eol : "\n",
      extension : extensions.LOG,
      level: "info",
      rotatePeriod : "YYYY-MM-DD",
      syncTimeout : 0,
    })
  ]
});

logger.warn("Hello!");

API

ParameterData TypeDescriptionDefaultType/Options
account
ObjectAzure storage account credentials. Can provide either
name
&
key
,
host
&
sasToken
, or a
connectionString
.
See below
blobName
StringThe name of the blob to log.
bufferLogSize
IntegerA minimum number of logs before syncing the blob.-1
containerName
StringThe container which will contain the logs.
eol
StringThe character appended to each log."\n"
extension
StringThe file extension for the log file.No file extension
.log
via
extensions
or string file extension
headers
ArrayColumn headers for csv log files. Headers, when provided, are applied to newly created csv blobs.
level
StringLog level of messages for the transport.
info
rotatePeriod
String (formatted)A moment format for blob name generation. Ex:
YYYY-MM-DD
will generate
blobName.2000.01.01
.
""
syncTimeout
Integer (milliseconds)The maximum time between two sync calls. Set to zero for realtime logging.0
Account Credentials Options:
FieldData TypeDescription
name
StringName of the Windows Azure storage account to use.
key
StringAccess key to authenticate into the storage account.
host
StringHTTP address of the storage account.
sasToken
StringShared access signature of the storage account.
connectionString
StringA connection string for the storage account.

Inspo & Credit

https://github.com/sdnetwork/winston3-azureblob-transport


Explore the Code