首页 > 解决方案 > 如何将类名和方法添加到rails logger

问题描述

我有一个 Rails 应用程序,我想向其中添加自定义日志格式化程序。在日志中,我想动态显示调用代码的类和调用它的方法。我在Rails Logger 文档中没有看到直接的方法来做到这一点。目前,在我的应用程序的类的初始化方法中,我正在做@logger = self.progname的是获取类并@logger.level("#{__callee__}: some message"获取方法。

我可以编写一个自定义日志记录类并将其分配给哪个很好config.log_formatter.../config/environments/production.rb我如何添加一个格式化程序,当我记录内容时,它会动态地告诉我我在使用什么类和什么方法?

标签: ruby-on-railsrubylogging

解决方案


我会假设该类将由self对象反映,尽管这可能很棘手。我认为通常你想要 self 的类,对于实例方法,但对于你想要的单例(类)方法self

所以你可以使用

self.kind_of?(Class) ? self.name : self.class.name

看起来您已经在使用__callee__来获取该方法。


推荐阅读