file-stream-rotator
Version:
Automated stream rotation useful for log files
77 lines (64 loc) • 3.42 kB
JavaScript
var moment = require('moment');
// var rotatingLogStream = require('../FileStreamRotator').getStream({filename:"/tmp/testlog-%DATE%.log", frequency:"1m", verbose: true});
// var rotatingLogStream = require('../FileStreamRotator').getStream({filename:"/tmp/testlog-%DATE%.log", frequency:"custom", verbose: true, date_format: "YYYY-MM-DD.HH.mm"});
// var rotatingLogStream = require('../FileStreamRotator').getStream({filename:"/tmp/testlog-%DATE%.log", frequency:"dont-rotate", verbose: true, date_format: "YYYY-MM-DD.HH.mm.ss"});
// var rotatingLogStream = require('../FileStreamRotator').getStream({filename:"/tmp/testlog-%DATE%.log", frequency:"daily", verbose: true, date_format: "YYYYMMDD"});
// var rotatingLogStream = require('../FileStreamRotator').getStream({filename:"/tmp/testlog-%DATE%.log", frequency:"daily", verbose: true});
// var rotatingLogStream = require('../FileStreamRotator').getStream({
var rotatingLogStream = require('../lib/index').default.getStream({
filename:"logs/1s/testlog-%DATE%.log",
frequency:"custom",
verbose: true,
date_format: "YYYY-MM-DD.HH.mm.ss",
size:"50k",
max_logs: "5",
audit_file:"audit-1s.json",
end_stream: false,
utc: true,
extension: ".logs",
watch_log: true,
audit_hash_type: 'sha256'
});
rotatingLogStream.on("error",function(err){
console.log(Date.now(), Date(), "stream error", err)
process.exit()
})
rotatingLogStream.on("close",function(){
console.log(Date.now(), Date(), "stream closed")
})
rotatingLogStream.on("finish",function(){
console.log(Date.now(), Date(), "stream finished")
})
rotatingLogStream.on("rotate",function(oldFile,newFile){
console.log(Date.now(), Date(), "stream rotated",oldFile,newFile);
})
rotatingLogStream.on("open",function(fd){
console.log(Date.now(), Date(), "stream open",fd);
})
rotatingLogStream.on("new",function(newFile){
console.log(Date.now(), Date(), "stream new",newFile);
})
rotatingLogStream.on("addWatcher", function(newLog){
console.log(Date.now(), Date(), "stream add watcher",newLog);
})
// console.log(rotatingLogStream.on, rotatingLogStream.end, rotatingLogStream)
var counter = 0;
var i = setInterval(function(){
counter++;
// rotatingLogStream.write(Date() + "\ttesting 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890-testing 1234567890\n")
// rotatingLogStream.write(Date() + "ニューバランスの100年を超える長い歴史\n")
// if(counter == 2000){
if(counter == 400){
clearInterval(i);
console.log(Date() + "\tEND STREAM");
rotatingLogStream.end("end\n");
return;
}
rotatingLogStream.write(Date() + "\t");
for(var y = 0; y<400; y++){
// console.log(i + " ")
// rotatingLogStream.write(y + ": " + Date.now() + " >> ");
rotatingLogStream.write("適: " + Date.now() + " >> ");
}
rotatingLogStream.write("\n");
}, 10);