Ruby On Rails in UA/Rails plugins и фичи/Расширенное логированеи с помощью log4r/Rails loggger formatter

10 июня 2008, 03:42
admin
Ruslan Voloshin
Живет: Odessa,UKR
Сообщений: 2166
Рейтинг: 532.0
Рег: 13 марта 2007
Его блог
Rails loggger formatter
  •  
5.0 из 1 гол.
Борьба с логером не закончилась на этом. Как показало тестовое использование log4r, сто он не на столько совершенен чтобы его использовать на все 100% в продакшине, по сему было принято решение сделать маленький хак для стандартного логера, для получения желаемого вида логов. logger for rails 1.2.x < 2.0 Вынесем наш хак во внешний файл, для просторы миграции в другие приложения или его отключения. #app/lib/logger_core_ext.rb' ###################################### #Для использования добавляем в app/config/enviromnent.rb следующие строки #require 'logger_core_ext' #RAILS_DEFAULT_LOGGER.formatter = Logger::CustomFormatter.new ###################################### class Logger #revert rails logger hack alias format_message old_format_message class CustomFormatter < Formatter def call(severity, time, progname, msg) "[%s|#%5d|%s] %s| %s\n" % [severity[0..3], $$, time.to_s(:db), progname, msg2str(msg)] end end end #app/config/enviromnent.rb require 'logger_core_ext' RAILS_DEFAULT_LOGGER.formatter = Logger::CustomFormatter.new Добавим для тестового просмотра вида нашего лога в application.rb class ApplicationController < ActionController::Base before_filter :showlog def showlog logger.debug('debug from log'){ "Received connection from" } logger.info('info from log') logger.info("MainApp"){ "Received connection from" } logger.warn('warn from log') logger.error('error from log') logger.fatal('fatal from log') end end Как результат в наших логах прекрасные и понятные записи. Processing MessagesController#show (for 127.0.0.1 at 2008-03-11 11:35:48) [GET] [INFO|# 5584|2008-03-11 11:35:48] | Session ID: 7e022c9982f2d317480f10f104c92407 [INFO|# 5584|2008-03-11 11:35:48] | Parameters: {"action"=>"show", "id"=>"14", "controller"=>"messages"} [DEBU|# 5584|2008-03-11 11:35:48] | [Set SUBDOMAIN] - [DEBU|# 5584|2008-03-11 11:35:48] debug from log| Received connection from [INFO|# 5584|2008-03-11 11:35:48] | info from log [INFO|# 5584|2008-03-11 11:35:48] MainApp| Received connection from [WARN|# 5584|2008-03-11 11:35:48] | warn from log [ERRO|# 5584|2008-03-11 11:35:48] | error from log [FATA|# 5584|2008-03-11 11:35:48] | fatal from log [DEBU|# 5584|2008-03-11 11:35:48] | Message Columns (0.000000) SHOW FIELDS FROM messages [DEBU|# 5584|2008-03-11 11:35:48] | Message Load (0.000000) SELECT * FROM messages WHERE (messages.`id` = 14) [DEBU|# 5584|2008-03-11 11:35:48] | Message Load (0.010000) SELECT * FROM messages WHERE (messages.`id` = 14)
------------
Операции с WM | SEO консультации
,

Гости: 103 Онлайн: 0