ruby-on-rails - 如何将类名和方法添加到rails logger
问题描述
我有一个 Rails 应用程序,我想向其中添加自定义日志格式化程序。在日志中,我想动态显示调用代码的类和调用它的方法。我在Rails Logger 文档中没有看到直接的方法来做到这一点。目前,在我的应用程序的类的初始化方法中,我正在做@logger = self.progname
的是获取类并@logger.level("#{__callee__}: some message"
获取方法。
我可以编写一个自定义日志记录类并将其分配给哪个很好config.log_formatter
。.../config/environments/production.rb
我如何添加一个格式化程序,当我记录内容时,它会动态地告诉我我在使用什么类和什么方法?
解决方案
我会假设该类将由self
对象反映,尽管这可能很棘手。我认为通常你想要 self 的类,对于实例方法,但对于你想要的单例(类)方法self
。
所以你可以使用
self.kind_of?(Class) ? self.name : self.class.name
看起来您已经在使用__callee__
来获取该方法。
推荐阅读
- c++ - 为什么这个简单的 CUDA 内核会得到错误的结果?
- java - 关于变量初始化,构建这组 try catch 块的正确方法是什么?
- google-chrome - Chrome:忽略 --window-size 命令行参数
- javascript - SparkAR javascript toFixed(1) 不起作用
- django - Swagger 没有正确反映 Django Rest Framework 中的 POST 端点定义
- json - 使用通过“Jq”方法检索所需的抵消 json 对象
- javascript - 功能组件:访问共享状态
- c++ - C++ Rookie - 构造函数问题
- angular - 服务数据获取器在 Angular 中返回未定义
- vue.js - 在 vuejs 路由器的 beforeEnter 中等待状态更新