file-stream-rotator
Version:
Automated stream rotation useful for log files
86 lines (69 loc) • 4.08 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});
const symLinkName = "tail.log"
var rotatingLogStream = require('../FileStreamRotator').getStream({
filename: "logs/1m/testlog-%DATE%",
frequency: "1m",
verbose: true,
date_format: "YYYY-MM-DD.HH.mm",
size: "500k",
max_logs: "10",
audit_file: "/tmp/audit.json",
end_stream: false,
utc: true,
extension: ".log",
create_symlink: false,
watch_log: true,
// symlink_name: "tail.log"
symlink_name: symLinkName
});
rotatingLogStream.on("error", function () {
console.log(Date.now(), Date(), "stream error", arguments)
})
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("logRemoved", function (newFile) {
console.log(Date.now(), Date(), "stream logRemoved", newFile);
})
// console.log(rotatingLogStream.on, rotatingLogStream.end, rotatingLogStream)
// var rotatingLogStream1 = require('../FileStreamRotator').getStream({
// filename: "/tmp/a/logs/1m-1/testlog-%DATE%.log",
// frequency: "1m",
// verbose: true,
// date_format: "YYYY-MM-DD.HH.mm",
// size: "50k",
// max_logs: "10",
// audit_file: "/tmp/audit-1.json",
// end_stream: false
// });
var counter = 0;
var i = setInterval(function () {
counter++;
rotatingLogStream.write(Date() + "\t" + "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-testing 1234567890\n")
// rotatingLogStream1.write(Date() + "\t" + "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-testing 1234567890\n")
if (counter == 5000) {
clearInterval(i);
rotatingLogStream.end("end\n");
// rotatingLogStream1.end("end\n");
}
}, 10);
// var i = setTimeout(function () {
// rotatingLogStream.emit("createLog")
// }, 10000);