rails_semantic_loggerでヘルスチェックのログを止める

May 6, 2020 by Yudai Suzuki

rails_semantic_loggerRails::Rack::Logger を swap してる ので、以下のような swap がうまく動かない。

特定のログを抑制する方法として、SemanticLogger には Filtering という機能がある。

こんな感じに書いておけばヘルスチェックのエンドポイントへリクエストされた時のログは出なくなる。

config.semantic_logger.add_appender(
  io: STDOUT,
  level: config.log_level,
  formatter: :json,
  filter: -> log { log.payload[:path] !~ /^\/healthcheck$/ }
)

追記

なんかpayloadにnilが入ってくる時があるっぽい。あと別に正規表現じゃなくてもいい。

config.semantic_logger.add_appender(
  io: STDOUT,
  level: config.log_level,
  formatter: :json,
  filter: -> log {
    unless log.payload.nil?
      log.payload[:path] != "/healthcheck"
    end
  }
)

© 2017 | Onigra | Powerd by Hucore theme & Hugo