もう、SEO担当じゃないけど、タイトルはそのまんま。
RailsのLoggerで以下の様にすればIPアドレスが出力されるのは
色々なブログなんかで紹介されている。
config.log_tags = [:remote_ip]
が、別のログファイルを作成して出力するとlog_tagsは適用されない。
(これもどこかで見かけた。)
じゃあ、どうすればいいのか。
logger.rbのここでIPアドレス(remote_ip)は出力されるが
独自のログファイルには出力されない。
@logdev.write(
format_message(format_severity(severity), Time.now, progname, message))
development.rbにて以下を記述するとログファイルは作成されるが
test.logにはremote_ipは出力されない。
config.log_tags = [:remote_ip, :user_agent, :request_id]
config.logger = Logger.new("log/development.log", 'daily')
config.test_logger = Logger.new(Rails.root.join('log/test.log'), 'daily')
config.logger.formatter = Logger::Formatter.new
config.test_logger.formatter = Logger::Formatter.new
config.logger =ActiveSupport::TaggedLogging.new(config.logger)
config.test_logger =ActiveSupport::TaggedLogging.new(config.test_logger)
◆対処
前述のformatterを設定する箇所を以下で書き変えるとremote_ipが出力される。
config.logger.formatter = Logger::Formatter.new
config.test_logger.formatter = config.logger.formatter