Ruby on Rails ohne Protokollierung von IP-Adressen
Die erste Zeile jedes Log-Eintrags einer normalen Railsanwendung sieht ungefähr so aus:
Processing PostsController#index (for 123.123.123.123 at 2008-02-19 14:54:27) [GET]
Bei jeder Anfrage wird die IP-Adresse des anfragenden Rechners zusammen mit dem Zeitpunkt der Anfrage gespeichert.
Mich interessieren diese Daten allerdings nicht. Viel mehr bin ich der Meinung, dass sie mich einfach mal nichts angehen, zumal auch beim Betreiben von Websites das Gebot der Datensparsamkeit gilt. Und nur weil es von der breiten Masse ignoriert wird, ist es damit ja noch lange nicht aufgehoben.
Der Standard Logger von Ruby on Rails bietet keine Möglichkeit, die Protokollierung dieser Daten abzuschalten. Doch glücklicherweise lässt sich die verantwortliche Funktion einfach überschreiben, Ruby sei Dank.
Da ich IP-Logging in meiner Entwicklungs- und Testumgebung eventuell tatsächlich haben will, überschreibe ich die Funktion in der Datei config/environments/production.rb, so dass nur im eigentlichen "Produktionsbetrieb" keine Protokollierung stattfindet.
# Overwrite ActionController::Base.log_processing to prevent IP-Logging
# config/environments/production.rb
if logger
logger.info "\n\nProcessing \# () []"
logger.info " Session ID: " if @_session and @_session.respond_to?(:session_id)
logger.info " Parameters: "
end
end
end
Nun wird die IP-Adresse nicht mehr gespeichert und die erste Zeile der Einträge im Logfile sieht wie folgt aus:
Processing PostsController#index (2008-02-19 14:54:56) [GET]
Eins noch: Um das "Wir speichern nicht!"-Siegel zu bekommen, dürfte diese Maßnahme in den meisten Fällen nicht ausreichen. Oft hat man ja noch einen loggenden Webserver oder einen Load-Balancer mit eigenen Logfiles vorgespannt. Die Protokollierung muss also auch dort noch abgestellt werden.

This work by pattex is licensed under a Creative Commons Attribution 3.0 Germany License.