各自が好きな内容をはいてるサーバーのデバッグログを
Athena でよめるよう csv にして S3 に保存したいのですが
fluentd で改行やカンマが入ってる文字列を
CSVとして認識できる形に整形する方法はないでしょうか

fluentd にデフォルトで入っている format csv では
エスケープはしてくれないようで改行がそのまま改行として出力されてしまい
CSVとして読み込めないファイルになってしまいます

https://docs.fluentd.org/v/0.12/developer/plugin-development
をみながら

/etc/fluentd/plugin/api_log.rb

module Fluent
  require 'fluent/plugin/formatter_csv'

  module TextFormatter
    class ApiLogCsvFormatter < CsvFormatter

      Plugin.register_formatter("api_log", self)

      def configure(conf)
        super
      end

      def format(tag, time, record)
        record['text'] = record['text'].inspect
        super
      end
    end
  end
end

と format だけオーバーライドして中身をエスケープするように変更してみたのですが
<match api.**> の中に

  <case api.*.api>
    format api_log
    fields time,level,text
  </case>

という設定を追加しても

2019-09-05 03:31:05 +0000 [error]: #0 [match_api] failed to configure sub output s3: Unknown formatter plugin 'api_log'. Run 'gem search -rd fluent-pl
ugin' to find plugins

というエラーになります

カスタム formatter を認識させるにはどうすればいいでしょうか

そもそもカスタムしなくてもデフォルトの機能で実現する方法はないでしょうか

fluentd は 0.12.40 です