我目前正在开发GCP,并在GCP实例上部署了我的rails应用程序。我目前正在使用https://github.com/brendeschuijmert/google-cloud-ruby/tree/master/google-cloud-logging作为计算引擎。
当我在rails应用程序上使用它时。
Rails.logger.info "Hello World"运行得很好。
但是logger.warn "Hola Mundo"不起作用。
我希望有人能对这个问题有所了解。
谢谢
发布于 2020-10-14 11:19:34
如果您试图从控制器/模型或其他属于Rails结构一部分的文件外部调用logger -您将必须显式地为您自己创建一个记录器,使用:
logger = Logger.new(STDOUT) # Or wherever you want to log to但是,如果Rails.logger正常工作,那么您可能只需要一个像logger = Rails.logger这样的别名就可以使用不带Rails名称空间前缀的logger.warn。您所在的文件可能还没有为您指定别名的帮助器。
更深入的研究表明,logger源自ActiveSupport::LogSubscriber --像ActionController这样的几个类都包含继承自该模块的子LogSubscriber,因此logger方法对它们可用。您可以手动将其别名为Rails.logger,以便在您尝试调用它的任何位置都能为您工作。
来源:https://api.rubyonrails.org/classes/ActiveSupport/LogSubscriber.html#method-c-logger
https://stackoverflow.com/questions/64325600
复制相似问题