bunyan-rotating-file-stream
Advanced tools
Comparing version 1.5.0 to 1.5.1
# bunyan Changelog | ||
## 1.5.1 | ||
- Fixed an issue with gzipped files not being deleted when using datestamps | ||
- Fixed an issue with gzipped files not being rotated correctly when continuing an existing log file | ||
## 1.5.0 Templates Release | ||
@@ -4,0 +9,0 @@ |
@@ -16,2 +16,4 @@ var fs = require('fs'); | ||
var reopenedFilePath = null; | ||
function getFilesInLogDirectory(next) { | ||
@@ -25,25 +27,33 @@ fs.readdir(path.resolve(parsedPath.dir), function (err, files) { | ||
function filterJustOurLogFiles(files, next) { | ||
var logfiles = _.filter(files, function (file) { | ||
var parsedFile = path.parse( | ||
path.resolve( | ||
path.join( | ||
parsedPath.dir, | ||
file | ||
function filterJustOurLogFiles(includeZipFiles) { | ||
return function (files, next) { | ||
var logfiles = _.filter(files, function (file) { | ||
var parsedFile = path.parse( | ||
path.resolve( | ||
path.join( | ||
parsedPath.dir, | ||
file | ||
) | ||
) | ||
) | ||
); | ||
); | ||
if (parsedFile.ext === '.gz') { | ||
var splitname = parsedFile.name.split('.'); | ||
parsedFile.ext = splitname.slice(-1).join(''); | ||
parsedFile.name = splitname.slice(0, -1).join(''); | ||
} | ||
var prefix = parsedPath.name.split('%').slice(0, 1).join(''); | ||
var prefix = parsedPath.name.split('%').slice(0, 1).join(''); | ||
return (parsedFile.name.indexOf(prefix) === 0 && | ||
parsedFile.ext === parsedPath.ext); | ||
}); | ||
if (includeZipFiles && parsedFile.ext === '.gz') { | ||
var splitname = parsedFile.name.split('.'); | ||
parsedFile.ext = '.' + splitname.slice(-1).join(''); | ||
next(null, logfiles); | ||
if (parsedFile.ext === '.') { | ||
parsedFile.ext === ''; | ||
} | ||
parsedFile.name = splitname.slice(0, -1).join(''); | ||
} | ||
return (parsedFile.name.indexOf(prefix) === 0 && | ||
parsedFile.ext === parsedPath.ext); | ||
}); | ||
next(null, logfiles); | ||
} | ||
} | ||
@@ -111,12 +121,13 @@ | ||
function getSortedLogFiles(next) { | ||
async.waterfall([ | ||
getFilesInLogDirectory, | ||
filterJustOurLogFiles, | ||
statEachFile, | ||
sortFilesByModifiedTime | ||
], function (err, logfiles) { | ||
next(err, logfiles); | ||
}); | ||
function getSortedLogFiles(matchzippedfiles) { | ||
return function (next) { | ||
async.waterfall([ | ||
getFilesInLogDirectory, | ||
filterJustOurLogFiles(matchzippedfiles), | ||
statEachFile, | ||
sortFilesByModifiedTime | ||
], function (err, logfiles) { | ||
next(err, logfiles); | ||
}); | ||
} | ||
} | ||
@@ -126,3 +137,3 @@ | ||
async.waterfall([ | ||
getSortedLogFiles, | ||
getSortedLogFiles(true), | ||
deleteFilesAfterCountBreach, | ||
@@ -140,19 +151,23 @@ deleteFilesAfterSizeBreach | ||
function internalGetStreamFilepath(gzipped, nonce) { | ||
var result = Object.assign({}, parsedPath); | ||
var result; | ||
if (reopenedFilePath !== null) { | ||
result = path.parse(reopenedFilePath); | ||
} else { | ||
result = Object.assign({}, parsedPath); | ||
if (nonce === 0) { | ||
result.name = result.name | ||
.replace('.%N', '') | ||
.replace('_%N', '') | ||
.replace('-%N', '') | ||
.replace('%N', ''); | ||
} else if (result.name.indexOf('%N') >= 0) { | ||
result.name = result.name.replace('%N', String(nonce)); | ||
} else { | ||
result.name = result.name + '.' + String(nonce); | ||
} | ||
if (nonce === 0) { | ||
result.name = result.name | ||
.replace('.%N', '') | ||
.replace('_%N', '') | ||
.replace('-%N', '') | ||
.replace('%N', ''); | ||
} else if (result.name.indexOf('%N') >= 0) { | ||
result.name = result.name.replace('%N', String(nonce)); | ||
} else { | ||
result.name = result.name + '.' + String(nonce); | ||
result.name = strftime(result.name, filenameTimestamp); | ||
} | ||
result.name = strftime(result.name, filenameTimestamp); | ||
if (gzipped) { | ||
@@ -215,2 +230,3 @@ result.ext += '.gz'; | ||
function createNewFile(next) { | ||
reopenedFilePath = null; | ||
findUnusedFile(0, function (err, filepath, foundnonce) { | ||
@@ -231,3 +247,3 @@ nonce = foundnonce || 0; | ||
} else { | ||
getSortedLogFiles(function (err, logfiles) { | ||
getSortedLogFiles(false)(function (err, logfiles) { | ||
if (err) { | ||
@@ -240,3 +256,4 @@ return next(err); | ||
} else { | ||
next(null, logfiles[0].path); | ||
reopenedFilePath = logfiles[0].path; | ||
next(null, reopenedFilePath); | ||
} | ||
@@ -243,0 +260,0 @@ }); |
{ | ||
"name": "bunyan-rotating-file-stream", | ||
"version": "1.5.0", | ||
"version": "1.5.1", | ||
"description": "a rotating file stream for the bunyan logging system", | ||
@@ -5,0 +5,0 @@ "author": "Jim Tupper <npm@tupper.org.uk> (http://github.com/rcomian)", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
188863
3937
0