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-stream
Additionally for Typescript:
npm install -D @types/node
Usage
Example:
import FileTimestampStream from "file-timestamp-stream"
import {FileTimestampStream} from "file-timestamp-stream"
Options
flags
is a string with
flags
for the 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 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 {
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:
Protected properties for a custom subclass:
currentFilename
contains the last opened filenamestream
contains 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
MIT