Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Andrew Thompson
Riak Guru @ Basho
Basho Technologies Inc.

After dropping out of University College Dublin in the early 2000s, Andrew did some freelance webdesign until he somehow landed a job in an area he knew nothing about; VOIP telephony and automated call distribution for callcenters. He went on to develop 2 callcenter platforms, the second one, open-sourced and called OpenACD, in Erlang (which he learned on the fly). Along the way he wrote an Erlang interface module for the FreeSWITCH VOIP server and the popular gen_smtp library for Erlang. Following that, he went to work at Barracuda networks for a year doing javascript UI development for their Cudatel VOIP product. Following a 2011 writeup of optimizing GitHub's Erlang git daemon (which they abandoned because it didn't scale) he was offered a job at Basho, which he has enjoyed ever since.

At Basho, Andrew has been responsible for maintaining the EDS replication product as well as designing and implementing Lager, the popular Erlang logging library used in Riak since 1.0. In his rare free time, he enjoys working on his cars, tinkering with old UNIX hardware and hacking on pointless side projects like re-implementing ancient DOS video games and trying to implement an IMAP server in Erlang.

Andrew Thompson is Giving the Following Talks
Lager: Logging with Confidence

Logging with Erlang can be fraught with peril. If it isn't a gen_server with a 10mb binary in its state crashing and OOMing the node as error_logger tries to print its state, it's your webserver crashing with 10,000 open connections with each one trying to log that it crashed. Or maybe you're writing an Erlang-powered product and don't want to scare your customers with scary, giant Erlang tuples in their log messages.

Lager is Basho's answer to the problems it encountered shipping Riak with the default SASL logger. Lager's goals are to provide safe, reliable, customer friendly logging with familiar UNIX logfile semantics.

Talk objectives: This talk will cover Lager's approach for solving the traditional problems with Erlang logging  and cover some of the handy extra features it provides.

Target audience: People who have been bitten by Erlang logging in the past, or anyone who is planning on deploying Erlang at scale and isn't aware of what can go wrong with logging.