Hi there! I was searching the mailing-list history but didn't find any topics related to the subject I'd like to discuss. Maybe I didn't look close enough, sorry if so. Anyway, the subject I want to discuss is how to use log4perl for structured logging. There are a couple of modules on CPAN related to this task, like for example Log::Log4perl::Layout::GELF, Log::Log4perl::Appender::Fluent or Log::Message::JSON. But different approaches implemented there gave me the impression that there is no a general convenient way of doing structured logging in log4perl. Yes, you can pass an arbitrary list of parameters to the logger and it really depends on the appender if it can work with that or not, Log::Log4perl::Appender::DBI is a good example of how to do that. But what if I want to log my data to database, log file and lets say ElasticSearch at the same time. The problem here is that all three appenders expect data in different formats, File appender expects to get a string, DBI - a list of parameters and ElasticSearch - JSON. This is the place where you get stuck and has to choose something one. The Log::Message::JSON module, as I understand it, is trying to address the problem using objects which get serialized to JSON in appenders expecting stings. But calling a special function (logmsg) every time you log something is quite a hassle and this is only JSON, what if I want to use XML? Here we go, there is no way in log4perl you can format you data before they are passed to appender. Layouts are meant to render messages, not arbitrary data. I also was trying to play with the warp_message appender option but it's result is always an array ref which doesn't work with File appender for example and it's probably not the best way to solve the problem. To don't introduce new entities I'd say that Layouts is a proper place to make such transformations but it is just not how things work now.
Can someone suggest a good solution for that or maybe an idea? What are you thoughts in general on the problem, should it be solved in log4perl? Thanks. -- Dmitry e-mail: ices...@inbox.ru ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ log4perl-devel mailing list log4perl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/log4perl-devel