Skip to content

Instantly share code, notes, and snippets.

@matutter
Last active September 24, 2016 18:25
Show Gist options
  • Select an option

  • Save matutter/8ef56406d54ffb74b1a9a5b4227a6dbe to your computer and use it in GitHub Desktop.

Select an option

Save matutter/8ef56406d54ffb74b1a9a5b4227a6dbe to your computer and use it in GitHub Desktop.
Trying to get winston to log into home path with a ~
// winston.version === '2.2.0'
var winston = require("winston")
var fs = require("fs")
var path = require("path")
function tryLog(filename, msg) {
var logger = new winston.Logger()
logger.add(winston.transports.File, {
filename: filename,
level : 'verbose',
handleExceptions: true
})
var fileTransport = logger.transports.file
var fullpath = path.join(fileTransport.dirname, fileTransport._getFile())
logger.on('error', console.error.bind(console, 'logger:'))
fileTransport.on('error', console.error.bind(console, 'logger.transports.file:'))
logger.verbose(msg)
setTimeout(() => {
try {
var text = fs.readFileSync(fullpath, 'utf8')
console.log(text)
} catch(e) {
console.log(msg, e.message)
}
}, 200)
}
tryLog('~/.mylog.log', 'I dont log because')
tryLog('.mylog.log', 'I log')
@matutter
Copy link
Copy Markdown
Author

matutter commented Sep 24, 2016

[mat@vm test]$ node winston.test.js
logger.transports.file: { [Error: ENOENT: no such file or directory, open '~/.mylog.log']
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '~/.mylog.log' }
I dont log because ENOENT: no such file or directory, open '~/.mylog.log'
{"level":"verbose","message":"I log","timestamp":"2016-09-24T18:25:02.950Z"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment