2012-05-17 38 views
8

Mis carriles configuración del registrador actualmente registra la hora actual y UUID, como esto:Utilizando el registro de registros etiquetados, ¿cómo puedo registrar el nivel de registro de un mensaje?

config.logger = ActiveSupport::TaggedLogging.new(Logger.new("#{Rails.root}/log/#{ENV['RAILS_ENV']}.log", 'daily')) 
config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid] 

¿Hay una manera de conectarse también el nivel de registro del mensaje actual?

es decir, si llamo a logger.debug, la etiqueta [DEBUG] se agrega al mensaje.

Respuesta

8

Railscasts muestra cómo reemplazar el registrador a la salida de la gravedad del mensaje de registro reemplazando el método llamado # SimpleFormatter:

class Logger::SimpleFormatter 
    def call(severity, time, progname, msg) 
    "[#{severity}] #{msg}\n" 
    end 
end 

Ver http://railscasts.com/episodes/56-the-logger-revised para los detalles.

-4

Agregué MyApp :: Application.config.log_level a las etiquetas de registro y funcionó para mí.

config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid, Proc.new {MyApp::Application.config.log_level}] 
+6

Por lo que yo entiendo, ese es el nivel de registro mínimo definido para la aplicación, no el nivel de registro del mensaje individual. – Ovesh

Cuestiones relacionadas