定义自己的自定义记录器类:
require 'logger' class DistinctFileLogger LOG_LEVEL = [:debug , :info , :warn , :error , :fatal , :unknown] def initialize(path) @loggers = {} LOG_LEVEL.each do |level| @loggers[level] = Logger.new("#{path}/#{level}.log") end end LOG_LEVEL.each do |level| define_method(level) do |message| @loggers[level].send(level, message) end end end
然后将您的应用配置为使用此自定义记录器,而不是原始记录器。例如,在Rails中-可以在您的环境配置中完成:
Rails.logger = DistinctFileLogger.new(Rails.root.join('log'))