Wednesday, December 3, 2008

Log4erl 0.8.2 is out

Hi All,

It's been a long time and as usual been busy with other projects. However, finally another release is out. I've just released version 0.8.2 of log4erl. It's a small step but, hopefully, in the right direction. This code has been in my computer for some time now.

The most important addition here is log4erl:change_format/2,3. This is similar to PatternLayout in Log4j. A list of specifiers can be found in README.txt file. Using log4erl:change_format/2,3, you'll be able to change the layout of the outputed message. Also, there's log4erl:change_log_level/1,2 plus some bug fixes.

I think this is a good time to talk about where this project is going and where I do intend to take it. I've got some questions regarding performance, email logging, Syslog...etc. All of these features are within the scope of log4erl. However, it's too early to say when they will be added. The main concern for me now is to freeze the API and make log_manager stable. Once this is done, adding new formatters will be simpler. Performance metrics and optimization should be done around the time log_manager is stable.

Having said that, I think console_formatter is necessary and I'd like to add SMTP formatter soon. By log4erl 1.0, I intend to have at least 3 formatters: file_formatter, console_formatter, smtp_formatter. Also, a performance benchmark should be published by that time. The expected release of version 1.0 is around July 2009 but please don't bet on it. There are a lot of variables here and I don't want to give promises. This is just an educated guess.

I had some questions about distributed logging. Such a feature is not intended to be part of the short-term plan for log4erl. I started log4erl to be used in my own projects, which are mainly run in single-server machines and decided to share it with the rest of the community. I believe distributed logging needs a more careful design and testing methods, although I believe implementing distributed logging is simpler in erlang than other languages. For now, the only distributed mechanism log4erl can do is through rpc:call/4.

Anyways, back to work. The next step is the long-awaited manual for log4erl 0.8. Until then, have a good time.

No comments: