# File lib/fluent/compat/formatter_utils.rb, line 32 def self.convert_formatter_conf(conf) return if conf.elements(name: 'inject').first || conf.elements(name: 'format').first inject_params = {} INJECT_PARAMS.each do |older, newer| next unless newer if conf.has_key?(older) inject_params[newer] = conf[older] end end if conf.has_key?('include_time_key') && Fluent::Config.bool_value(conf['include_time_key']) inject_params['time_key'] ||= 'time' inject_params['time_type'] ||= 'string' end if conf.has_key?('time_as_epoch') && Fluent::Config.bool_value(conf['time_as_epoch']) inject_params['time_type'] = 'unixtime' end if conf.has_key?('localtime') || conf.has_key?('utc') if conf.has_key?('localtime') && conf.has_key?('utc') raise Fluent::ConfigError, "both of utc and localtime are specified, use only one of them" elsif conf.has_key?('localtime') inject_params['localtime'] = Fluent::Config.bool_value(conf['localtime']) elsif conf.has_key?('utc') inject_params['localtime'] = !(Fluent::Config.bool_value(conf['utc'])) # Specifying "localtime false" means using UTC in TimeFormatter # And specifying "utc" is different from specifying "timezone +0000"(it's not always UTC). # There are difference between "Z" and "+0000" in timezone formatting. # TODO: add kwargs to TimeFormatter to specify "using localtime", "using UTC" or "using specified timezone" in more explicit way end end if conf.has_key?('include_tag_key') && Fluent::Config.bool_value(conf['include_tag_key']) inject_params['tag_key'] ||= 'tag' end unless inject_params.empty? conf.elements << Fluent::Config::Element.new('inject', '', inject_params, []) end formatter_params = {} FORMATTER_PARAMS.each do |older, newer| next unless newer if conf.has_key?(older) formatter_params[newer] = conf[older] end end unless formatter_params.empty? conf.elements << Fluent::Config::Element.new('format', '', formatter_params, []) end end