windows throws an EEXIST error when renaming, need to handle it

This commit is contained in:
Gareth Jones 2011-11-24 08:37:05 +11:00
parent cea3dc97d1
commit f10a6e164e

View File

@ -54,6 +54,14 @@ function fileAppender (file, layout, logSize, numBackups) {
function increaseFileIndex (fileToRename) { function increaseFileIndex (fileToRename) {
var idx = index(fileToRename); var idx = index(fileToRename);
if (idx < numBackups) { if (idx < numBackups) {
//on windows, you can get a EEXIST error if you rename a file to an existing file
//so, we'll try to delete the file we're renaming to first
try {
fs.unlinkSync(file + '.' + (idx+1));
} catch (e) {
//couldn't delete, but that could be because it doesn't exist
//try renaming anyway
}
fs.renameSync(path.join(path.dirname(file), fileToRename), file + '.' + (idx + 1)); fs.renameSync(path.join(path.dirname(file), fileToRename), file + '.' + (idx + 1));
} }
} }