我的grails web应用程序当前将大量调试信息记录到文件中,几乎可以满足每个请求。很多调试日志记录会减慢我的(grails)Web应用程序的性能吗?
根据您的经验,我应该将它移动到生产(这将使它很难跟踪到课程的缺陷)前关闭这个功能,还是有几乎在我的应用程序的性能,即使有很多用户在没有影响同一时间?
我的grails web应用程序当前将大量调试信息记录到文件中,几乎可以满足每个请求。很多调试日志记录会减慢我的(grails)Web应用程序的性能吗?
根据您的经验,我应该将它移动到生产(这将使它很难跟踪到课程的缺陷)前关闭这个功能,还是有几乎在我的应用程序的性能,即使有很多用户在没有影响同一时间?
伐木确实会减慢速度。特别是写入文件非常缓慢。即使创建要记录的字符串的过程也会对性能产生负面影响。我强烈建议您关闭此日志记录。如果你的应用程序有问题,那么你最好在开发环境中调试而不是生产。
我同意@tzhx。我将只添加2点:
1)您可能希望根据日志语句的重要性,使用log.info,.warn,.error,然后在您的配置中进行调整,以便在您使用的生产中进行调整适用于不同软件包的级别。你可能会想要一些基线级别的日志记录,甚至在prod中。
2)绝对不要在产品中记录sql。如果您遇到问题,请在开发环境或您的qa环境中记录sql以确定问题。
同意以前的答案。通常我在生产中将日志级别设置为WARN或ERROR。如果您需要在运行时调整日志记录级别,则可以使用http://www.grails.org/plugin/runtime-logging插件。这允许您增加日志记录以追踪仅在生产中出现的问题。错误分析后,您可以将日志记录级别恢复到正常级别。
如果您的用例需要大量日志记录(例如,出于审计跟踪原因等),您应该有单独的光盘用于日志记录或登录到某个专用远程设备。
如前所述,如果将大量信息记录到文件中,可能会影响性能。 我建议你做到以下几点:
if (log.debugEnabled) log.debug "This is a debug log line"
。请注意0的用法,如果您不希望在生产中对您的调试消息进行评估,则这一点很重要。日志记录本身带有性能成本。
但是你知道什么可以真正毁了你的应用程序性能吗?控制台日志记录