Kiel proprigas vian Rails protokolon

Ĉe mia nuna kodbazo ni havas multajn klientojn kiujn ĉiujn havas propran datumbazo. Foje en la protokolo helpemas disigi kliento de alian aŭ servprocezo de alia. Sube mi montros kiel fari tion post Rails 4.0.

Antaŭ 4.0 oni bezonas fliki Rails, nun vi povas agordi novan LogFormat. La interfaco estas metodo call. Jen ekzemplo:

class PropranProtokolanFormaton < Logger::Formatter
  def call(severeco, tempo, programonomo, mesaĝo)
    "[%s] [%d] [%5s] [%s]: %s\n" % [Kliento.nomo, Process.pid, severeco, tempo, mesaĝo]
  end
end

Tiel donos al ni novan linion por la mesaĝo kaj enmetas ĝin en nova objekto. Nun ni nur bezonas agordi ĝin per la sekva linio enmetita en config/application.rb por via Rails programo.

config.log_formatter = PropranProtokolanFormaton.new

Kaj nun vi havas vian novan formaton. Tio malsamas al etikedoj kiu enmetiĝis en Rails ankaŭ en 4.2 ĉar tio nur povas aldoni vortojn en la linio, ne tute ŝanĝi la linion.