add producer-consumer based logging