abstract logger module