2.2.4 • Published 5 years ago

file-timestamp-stream v2.2.4

Weekly downloads
151
License
MIT
Repository
github
Last release
5 years ago

file-timestamp-stream

Build Status Coverage Status npm

This module creates stream.Writable to a file which is automatically rotated based on current time and uses strftime template for file names.

Requirements

This module requires ES6 with Node >= 6.

Installation

npm install file-timestamp-stream

Additionally for Typescript:

npm install -D @types/node

Usage

Example:

const {FileTimestampStream} = require("file-timestamp-stream")

Typescript:

import FileTimestampStream from "file-timestamp-stream"
// or
import {FileTimestampStream} from "file-timestamp-stream"

Options

  • flags is a string with flags for opened stream (default: 'a')
  • fs is a custom fs module (optional)
  • path is a template for new filenames (default: 'out.log')

Example:

Basic path based on strftime parameters:

const stream = new FileTimestampStream({
  path: "%Y-%m-%dT%H.log",
  flags: "a",
})

newFilename

This method can be overriden in subclass.

The method generates a filename for new files. By default it returns new filename based on path and current time.

Example:

import strftime from "ultra-strftime"

class MyFileTimestampStream extends FileTimestampStream {
  /** count how many files has been created */
  counter = 0

  // for pure Javascript explicit constructor is necessary
  // constructor (options) { super(options); this.counter = 0 }

  protected newFilename(): string {
    const filename = strftime(this.path)
    if (filename !== this.currentFilename) this.counter++
    return filename
  }
}

const stream = new MyFileTimestampStream({
  path: "%Y-%m-%dT%H:%M.log",
})

Properties

Readonly public properties based on contructor's options:

  • flags
  • fs
  • path

Protected properties for custom subclass:

  • currentFilename contains last opened filename
  • stream contains current fs.WriteStream object

Path template format

Path can contain strftime specifiers.

Warning

This stream have to be closed to free own streams and timers.

License

Copyright (c) 2017-2019 Piotr Roszatycki piotr.roszatycki@gmail.com

MIT

2.2.4

5 years ago

2.2.3

5 years ago

2.2.2

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.4

5 years ago

2.1.3

5 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

0.6.0

6 years ago

0.5.0

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.0

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago