file-timestamp-stream
This module creates
stream.Writable
to a file which is automatically rotated based on current time.
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
fs.WriteStream
object
Path template format
Path can contain strftime specifiers.
License
Copyright (c) 2017-2018 Piotr Roszatycki piotr.roszatycki@gmail.com
MIT