file-timestamp-stream
TypeScript icon, indicating that this package has built-in type declarations

2.2.4 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i file-timestamp-stream

Weekly Downloads

270

Version

2.2.4

License

MIT

Unpacked Size

27.9 kB

Total Files

10

Last publish

Collaborators

  • dex4er