use strict; use warnings; use FindBin qw/ $Bin /; use lib "$Bin/lib"; use Test::More; BEGIN { plan skip_all => "Broken currently"; plan skip_all => 'Need Log::Message::Structured' unless do { local $@; eval { require Log::Message::Structured } }; } use JSON qw/ decode_json /; use TestStorage; use Log::Dispatch; use Log::Dispatch::Message::Passing; use Message::Passing::Output::Test; my $log = Log::Dispatch->new; my $test = Message::Passing::Output::Test->new; $log->add(Log::Dispatch::Message::Passing->new( name => 'myapp_logstash', min_level => 'debug', output => $test, )); $log->warn(TestStorage->new(foo => "bar")); is $test->message_count, 1; my ($msg) = $test->messages; my $data = decode_json(delete($msg->{message})); is_deeply $msg, {level => 'warn', name => 'myapp_logstash'}; is $data->{__CLASS__}, 'TestStorage'; done_testing;