implement the logger