代码之家  ›  专栏  ›  技术社区  ›  Jörg Brenninkmeyer

很多调试日志会减慢我的(grails)web应用程序的速度吗?

  •  2
  • Jörg Brenninkmeyer  · 技术社区  · 15 年前

    我的grails web应用程序目前在一个文件中记录了几乎每个请求的大量调试信息。

    根据您的经验,我应该在将其转移到生产环境之前关闭它(这当然会使跟踪错误变得更加困难),还是即使同时有许多用户,对应用程序的性能几乎没有影响?

    5 回复  |  直到 15 年前
        1
  •  5
  •   TZHX    15 年前

    伐木肯定会减慢速度。尤其是写文件非常慢。即使是创建要记录的字符串的过程也会对性能产生负面影响。我强烈建议你关闭这个登录。如果应用程序有问题,那么在开发环境中调试比在生产环境中调试要好。

        2
  •  4
  •   hvgotcodes    15 年前

    我同意@tzhx。我只想补充两点:

    1)您可能希望使用log.info、.warn、.error根据日志语句的重要性来划分日志语句,然后在配置中进行调整,以便在生产中为不同的包使用适当的级别。即使在prod中,您也可能需要一些基线级别的日志记录。

    2)绝对不要在prod中登录sql。如果有问题,请在dev或qa环境中登录sql来确定问题。

        3
  •  1
  •   Stefan Armbruster    15 年前

    同意之前的两个答案。通常我会将日志级别设置为警告或生产中的错误。如果需要在运行时调整日志记录级别,可以使用 http://www.grails.org/plugin/runtime-logging 插件。这允许您增加日志记录以跟踪仅在生产中出现的问题。在错误分析之后,您可以将日志记录级别还原为其正常级别。

    如果您的用例需要大量的日志记录(例如,由于审计跟踪等原因),您应该有单独的日志记录光盘或登录到某个专用的远程设备。

        4
  •  1
  •   fabien7474 Jan Tchärmän    15 年前

    如前所述,如果将大量信息记录到文件中,可能会严重影响性能。 我建议您执行以下操作:

    1. 大多数调试信息应该包含在如下语句中 if (log.debugEnabled) log.debug "This is a debug log line" . 注意以下用法 if (log.debugEnabled) 如果您不想在生产中评估调试消息,这一点很重要
    2. 安装插件 app-info . 此插件允许您在运行时更改日志级别(例如从信息更改为调试),与运行时日志插件不同,它为您提供了其他调试有用的信息(配置属性、内存消耗…)
        5
  •  0
  •   Kico Lobo    14 年前

    日志记录本身会带来性能成本。

    但你知道什么会真正破坏你的申请性能吗?控制台日志记录