如何解决google-cloud-logging中的记录器不适用于Rails
我目前正在GCP上工作,并将我的rails应用程序部署在GCP实例上。 我目前正在将https://github.com/brendeschuijmert/google-cloud-ruby/tree/master/google-cloud-logging用于计算引擎。
当我在Rails应用程序中使用它时。
Rails.logger.info "Hello World"
效果很好。
但是logger.warn "Hola Mundo"
无法正常工作。
我希望有人对此问题有所帮助。
谢谢
解决方法
如果您要尝试从控制器/模型或作为Rails结构一部分的其他文件之外调用logger
,则必须使用以下命令为您自己显式创建一个记录器:
logger = Logger.new(STDOUT) # Or wherever you want to log to
但是,如果Rails.logger
工作正常,则可能只需要一个别名logger = Rails.logger
就可以使用logger.warn
而不使用Rails名称空间前缀。您可能在一个没有帮助程序的文件中,该帮助程序为您提供了别名。
对API的更多挖掘表明,logger
源自ActiveSupport::LogSubscriber
-像ActionController
这样的几个类包括从该模块继承的子LogSubscriber
,因此具有他们可以使用logger
种方法。您可以手动将其别名为Rails.logger
,以使其在尝试调用它的任何地方都可以使用。
来源:https://api.rubyonrails.org/classes/ActiveSupport/LogSubscriber.html#method-c-logger
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。