Rails:loggingexception的整个堆栈跟踪

我一直在试图找出正确的方式来logging堆栈跟踪。 我碰到这个链接,其中指出logger.error $ !, $ !. backtrace是要走的路,但是这对我log_error不起作用。 根据文档,我不知道如何传递第二个参数的错误方法无论如何将工作,因为轨道使用的Rubylogging器只接受一个参数。

奇怪的是(也许不是)第二个理由被接受,没有任何解释者的抱怨。 但是,我传递给它的任何东西都会被忽略。

任何人都可以解释我失踪? 任何洞察到错误的第二个论据是什么和吃什么?

One Solution collect form web for “Rails:loggingexception的整个堆栈跟踪”

如果您在ActiveSupport中查看BufferedLogger类的源代码,则会看到第二个参数是“progname”。 这只在第一个参数为nil时使用,并且您已经给出了它没有块或块返回一个非真值。

实质上,你不能使用第二个参数来输出额外的东西。

你想要做的更类似于:

begin raise rescue => e logger.error e.message logger.error e.backtrace.join("\n") end 

根据您的日志logging设置,最好遍历回溯的每一行,并单独打印,因为某些logging器不会输出换行符,在这种情况下,您可以执行如下操作:

 begin raise rescue => e logger.error e.message e.backtrace.each { |line| logger.error line } end 
  • JRuby on Rails与Ruby on Rails有什么区别?
  • Ruby,从string中删除最后N个字符?
  • 处理货币/金钱的最佳方法是什么?
  • 在Windows上运行Ruby / Rails的限制
  • 如何删除安装的ri和rdoc?
  • RSpec入门 - 寻找教程
  • Ruby,RVM,LLVM和MySQL
  • 在js.erb文件中部分渲染
  • 为我的Rails应用程序创build自定义configuration选项的最佳方法?
  • 卸载旧版本的Ruby gems
  • 在Ruby中抛出exception与抛出exception有什么区别?