Skip to content

Instantly share code, notes, and snippets.

@wesleyduff
Last active January 23, 2019 18:30
Show Gist options
  • Save wesleyduff/62a5e8d465da698e633b21b4590b2c19 to your computer and use it in GitHub Desktop.
Save wesleyduff/62a5e8d465da698e633b21b4590b2c19 to your computer and use it in GitHub Desktop.
Node Logger Mock for JavaScript Testing - write to file not console
/**
Assumptions
- You have a folder in the same space named baseLogger
- - You can have other loggers if needed but with this code, you must have a baseLogger
Inside baseLogger
- should have but not limited to
- - debug.log.txt
**/
const fileWriter = ((fs) => {
let _logger = 'baseLogger',
_level = 'debug'
return {
getCurrentLogger: () => {
return {logger: _logger, level: _level}
},
getLoggerOptions: () => {
return {'log': 'baseLogger'}
},
setLogger: (logger) => {
_logger = logger;
return _logger;
},
setLevel: (level) => {
_level = level;
return _level;
},
write: (message, object) => {
const content = object ? `\n${message} | ${JSON.stringify(object)}` : `\n${message}`;
fs.appendFileSync(`${__dirname}/${_logger}/${_level}.log.txt`, content, (errorWritingFile) => {
if(errorWritingFile){
console.log('-- IF YOU SEE THIS ERROR, Fix the Mock Logger Writter.js file')
} else {
return true;
}
})
},
clearFile:() => {
fs.writeFileSync(`${__dirname}/${_logger}/${_level}.log.txt`, '', (errorWritingFile) => {
if(errorWritingFile){
console.log('-- IF YOU SEE THIS ERROR, Fix the Mock Logger Writter.js file')
} else {
return true;
}
})
}
}
})
module.exports = fileWriter(require('fs'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment