a generic logger class