diff --git a/lib/fluent/logger/fluent_logger.rb b/lib/fluent/logger/fluent_logger.rb index 1642d4b..0afec88 100644 --- a/lib/fluent/logger/fluent_logger.rb +++ b/lib/fluent/logger/fluent_logger.rb @@ -231,8 +231,9 @@ def to_msgpack(msg) @packer.pack(msg).to_s rescue NoMethodError JSON.parse(JSON.generate(msg)).to_msgpack + ensure + @packer.clear end - @packer.clear res } end diff --git a/spec/fluent_logger_spec.rb b/spec/fluent_logger_spec.rb index 23a47d2..b597e58 100644 --- a/spec/fluent_logger_spec.rb +++ b/spec/fluent_logger_spec.rb @@ -205,6 +205,10 @@ expect(fluentd.queue.last).to be_nil logger_io.rewind logger_io.read =~ /FluentLogger: Can't convert to msgpack:/ + + logger.post('tag', { 'a' => 'b' }) + fluentd.wait_transfer + expect(fluentd.queue.last).to eq ['logger-test.tag', { 'a' => 'b' }] } it ('should raise an error when second argument is non hash object') {