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