module Fluent::Compat::HandleTagAndTimeMixin

def self.included(klass)

def self.included(klass)
  klass.instance_eval {
    config_param :include_time_key, :bool, default: false
    config_param :time_key, :string, default: 'time'
    config_param :time_format, :string, default: nil
    config_param :time_as_epoch, :bool, default: false
    config_param :include_tag_key, :bool, default: false
    config_param :tag_key, :string, default: 'tag'
    config_param :localtime, :bool, default: true
    config_param :timezone, :string, default: nil
  }
end

def configure(conf)

def configure(conf)
  super
  if conf['utc']
    @localtime = false
  end
  @timef = Fluent::TimeFormatter.new(@time_format, @localtime, @timezone)
  if @time_as_epoch && !@include_time_key
    log.warn "time_as_epoch will be ignored because include_time_key is false"
  end
end

def filter_record(tag, time, record)

def filter_record(tag, time, record)
  if @include_tag_key
    record[@tag_key] = tag
  end
  if @include_time_key
    if @time_as_epoch
      record[@time_key] = time.to_i
    else
      record[@time_key] = @timef.format(time)
    end
  end
end