Socket
Socket
Sign inDemoInstall

winston-daily-rotate-file

Package Overview
Dependencies
Maintainers
2
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

winston-daily-rotate-file - npm Package Compare versions

Comparing version 1.5.0 to 1.6.0

158

index.js

@@ -289,100 +289,112 @@ 'use strict';

}
var self = this;
// TODO when maxfilesize rotate occurs
var file = path.join(this.dirname, this._getFilename());
options = this.normalizeQuery(options);
var buff = '';
var createdFiles = self._currentFiles; // _currentFiles array is already sorted chronologically
var results = [];
var row = 0;
options = self.normalizeQuery(options);
var stream = fs.createReadStream(file, {
encoding: 'utf8'
});
stream.on('error', function (err) {
if (stream.readable) {
stream.destroy();
}
if (!callback) {
// Edit so that all created files are read:
(function readNextFile(nextFile) {
if (!nextFile) {
return;
}
return err.code === 'ENOENT' ? callback(null, results) : callback(err);
});
var file = path.join(self.dirname, nextFile);
var buff = '';
stream.on('data', function (data) {
data = (buff + data).split(/\n+/);
var l = data.length - 1;
var i = 0;
var stream = fs.createReadStream(file, {
encoding: 'utf8'
});
for (; i < l; i++) {
if (!options.start || row >= options.start) {
add(data[i]);
stream.on('error', function (err) {
if (stream.readable) {
stream.destroy();
}
row++;
}
if (!callback) {
return;
}
return err.code === 'ENOENT' ? callback(null, results) : callback(err);
});
buff = data[l];
});
stream.on('data', function (data) {
data = (buff + data).split(/\n+/);
var l = data.length - 1;
var i = 0;
stream.on('close', function () {
if (buff) {
add(buff, true);
}
if (options.order === 'desc') {
results = results.reverse();
}
if (callback) {
callback(null, results);
}
});
for (; i < l; i++) {
if (!options.start || row >= options.start) {
add(data[i]);
}
row++;
}
function add(buff, attempt) {
try {
var log = JSON.parse(buff);
if (check(log)) {
push(log);
buff = data[l];
});
stream.on('close', function () {
if (buff) {
add(buff, true);
}
} catch (e) {
if (!attempt) {
stream.emit('error', e);
if (options.order === 'desc') {
results = results.reverse();
}
}
}
function push(log) {
if (options.rows && results.length >= options.rows) {
if (stream.readable) {
stream.destroy();
if (createdFiles.length) {
readNextFile(createdFiles.shift());
} else if (callback) {
callback(null, results);
}
return;
}
});
if (options.fields) {
var obj = {};
options.fields.forEach(function (key) {
obj[key] = log[key];
});
log = obj;
function add(buff, attempt) {
try {
var log = JSON.parse(buff);
if (check(log)) {
push(log);
}
} catch (e) {
if (!attempt) {
stream.emit('error', e);
}
}
}
results.push(log);
}
function push(log) {
if (options.rows && results.length >= options.rows) {
if (stream.readable) {
stream.destroy();
}
return;
}
function check(log) {
if (!log) {
return;
}
if (options.fields) {
var obj = {};
options.fields.forEach(function (key) {
obj[key] = log[key];
});
log = obj;
}
if (typeof log !== 'object') {
return;
results.push(log);
}
var time = new Date(log.timestamp);
if ((options.from && time < options.from) ||
(options.until && time > options.until)) {
return;
function check(log) {
if (!log) {
return;
}
if (typeof log !== 'object') {
return;
}
var time = new Date(log.timestamp);
if ((options.from && time < options.from) ||
(options.until && time > options.until)) {
return;
}
return true;
}
return true;
}
})(createdFiles.shift());// executes the function
};

@@ -389,0 +401,0 @@

{
"name": "winston-daily-rotate-file",
"version": "1.5.0",
"version": "1.6.0",
"description": "A transport for winston which logs to a rotating file each day.",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc