file-timestamp-stream v3.0.0
file-timestamp-stream
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 ES2021 with Node >= 16.
Installation
npm install file-timestamp-streamAdditionally for Typescript:
npm install -D @types/nodeUsage
Example:
import FileTimestampStream from "file-timestamp-stream"
// or
import {FileTimestampStream} from "file-timestamp-stream"Options
flagsis a string with flags for the opened stream (default:'a')fsis a custom fs module (optional)pathis 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 overridden in the subclass.
The method generates a filename for new files. By default, it returns a 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:
flagsfspath
Protected properties for a custom subclass:
currentFilenamecontains the last opened filenamestreamcontains current fs.WriteStream object
Path template format
A path can contain strftime specifiers.
Warning
This stream has to be closed to free streams and timers.
License
Copyright (c) 2017-2024 Piotr Roszatycki piotr.roszatycki@gmail.com
1 year ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago