1

从 django/python 开始,我在让 rails logger 记录我想要的所有信息时遇到了一些麻烦。我想知道如何/是否可以实现以下目标:

  1. 在日志格式(ter)中包含特定文件、函数名和日志语句本身所在的行。本质上相当于LOG_MSG_FORMAT = '%(asctime)s %(levelname)s %(filename)s:%(funcName)s(%(lineno)d) : %(message)s'python logger?
  2. 能够通过类似于 django request logging middleware的方式记录所有请求。特别是,能够记录每个请求的用户名(如果已登录)。

我错过了一些明显的东西吗?还是这需要(很多)自定义代码?

4

3 回答 3

1

我刚刚发现这个 railtie gem 可能会有所帮助,尽管我认为将用户名附加到日志需要一些“自定义代码”。请参阅有关记录特定控制器和模型的自述文件部分。

测井导轨

于 2012-07-20T16:10:55.487 回答
1

我不知道如何获取文件、函数和行号,但是从 application_controller 记录很容易:

class ApplicationController < ActionController::Base
  before_filter :log_user
  def log_user
    if current_user
      Rails.logger.info "Processing Request for #{current_user.name}"
    end
  end
end
于 2012-07-20T16:17:24.053 回答
1

只是添加一个快速注释,以防这对某人有用:

lograge gem使 rails 日志与 django 非常相似,此外还允许非常简洁的自定义,添加远程 ip 地址、current_user 等参数。

它还减少了渲染布局的冗长,无论如何我发现这对生产来说是不必要的。它还与@lukewendling提到的logging-rails railtie配合得很好。

可悲的是,我仍然找不到任何显示文件/函数/行号的东西,就像你可以用 django 轻松完成的那样,但我想这实在是太难了。

于 2012-10-20T22:21:17.593 回答