文件句柄和日志logging在节点JS
我有一个应用程序,将在任何时候使用应用程序将数据logging到文本文件。 它可能每天使用一次,或者每秒使用一次。
打开文本文件的句柄,并保持打开,只要我的应用程序正在运行,并永不closures,是否有什么问题? 这样我就可以将数据附加到日志而不用重新打开文件句柄。 对于我应该注意的这个决定会有什么后果吗?
我们有内置模块fn http://nodejs.org/api/fs.html和许多开放源代码模块(npm, https: //www.npmjs.org/)。
您可以使用winston ( https://www.npmjs.org/package/winston )进行日志logging
fs.open
返回一个文件描述符,如果你不closures连接,可能会导致文件描述符泄漏。 即使有错误,文件描述符也不会被closures。
另一方面, fs.readFile
, fs.writeFile
, fs.appendFile
, fs.createReadStream
和fs.createWriteStream
不返回文件描述符。 他们打开文件,对其进行操作,然后closures文件。