【发布时间】:2019-12-24 03:28:21
【问题描述】:
我目前在我的项目中使用 Winston 来记录一些日志文件 - 确切地说是 4 个不同的文件。每个文件都被大量的类用来对特定功能进行分组——这是应用程序的一个非常典型的用例。我的问题是,到目前为止,Winston 正在为每个类的同一个日志文件打开一个单独的文件描述符,甚至每次使用该类时。我在最新版本的 Amazon Linux 上运行,我的基准是使用 470 个文件描述符。一旦我启动我的应用程序,我就会跳到 1700 多个。从那里开始,当应用程序运行并实例化利用记录器的新类时,会使用数千个额外的文件描述符。我们所有的日志都是使用 Winston 的容器提取的(参见下面的代码)。
更新:我刚刚创建了一个只有 winston 的准系统应用程序,我用它创建了 1 个父记录器和成千上万的子记录器。我还使用子记录器在创建它们时记录消息。整个过程在操作系统上只需要 1 个文件描述符,所以很明显,我们在应用程序中所做的事情(它要复杂得多)导致 Winston 打开一个单独的 FD ......但这不是默认行为。有没有人见过这个?我正在向测试应用程序添加越来越多的内容,只是为了看看我是否能找到它实际开始使用更多文件描述符的点。
【问题讨论】:
标签: javascript node.js logging winston