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 ES6 with Node >= 6.
Installation
npm install file-timestamp-stream
Additionally for Typescript:
npm install -D @types/node
Transpiling this module with own settings in tsconfig.json
:
{
"compilerOptions": {
"paths": {
"file-timestamp-stream": ["node_modules/file-timestamp-stream/src/file-timestamp-stream"]
}
}
}
Usage
Example:
const { FileTimestampStream } = require('file-timestamp-stream')
Typescript:
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 {
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 custom subclass:
currentFilename
contains last opened filenamestream
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-2018 Piotr Roszatycki piotr.roszatycki@gmail.com
MIT