NodeJS winston 日志文件不会因大小限制而改变

Posted

技术标签:

【中文标题】NodeJS winston 日志文件不会因大小限制而改变【英文标题】:NodeJS winston log file not change upon size limit 【发布时间】:2014-09-21 14:25:23 【问题描述】:

我正在使用Winston 日志记录,并已将文件大小指定为最大 10MB。


    filename: 'e:\app.log', 
    json:false, 
    maxsize:'10MB', 
    maxFiles:'10', 
    timestamp:true, 
    level:'silly'

我预计 app.log 文件会在大小达到 10MB 时进行轮换,但这从未发生过,我的日志文件甚至会增长到 GB。

我做错了什么吗?谢谢。

【问题讨论】:

看起来您可能需要传递filename 的绝对路径,或者根据这个有点旧的github issue 设置dirname Go-oleg,谢谢。事实上,在我的代码中,它是绝对路径。重新更新了我的问题。 我认为maxsize 的值应该以字节为单位,因此您可以尝试使用10000000 而不是'10MB' 你说的太对了。非常感谢。现在可以了。 【参考方案1】:

如您所见,here maxsize 必须在 bytes 中,因此将其更改为 10000000

【讨论】:

文件在达到“最大尺寸”后没有旋转。我正在使用 "winston": "^2.3.1" 任何建议表示赞赏。 @KetavChotaliya 也许你可以打开另一个问题。【参考方案2】:

使用 ma​​xSize 而不是 ma​​xsize 会起作用。

【讨论】:

谢谢,我试过了,但该属性仅适用于文件大小,条目(消息)大小可能大于它。 @Varun 即使我添加了 maxSize 日志文件也远远落后于大小。我给了 100MB,但文件超过了 200Mb。【参考方案3】:

我认为 maxSize 仅适用于文件。

但在写入之前,日志条目大小可能大于限制。

我的问题是是否有类似 maxEntrySize 的东西可以直接限制日志条目的大小,而不仅仅是文件大小。

【讨论】:

以上是关于NodeJS winston 日志文件不会因大小限制而改变的主要内容,如果未能解决你的问题,请参考以下文章

温斯顿记录器在nodejs中不起作用

如何使用winston在子目录而不是根目录中设置日志?

Winston 的多个日志文件?

如何将 Winston 限制为每个日志文件只有 1 个文件描述符

除第一天外,如何使用 Winston 每天轮换日志

Winston-daily-rotate 忽略最大文件大小