basic custom logger implementation