winston-daily-rotate-file
Advanced tools
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", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
59996
1454