add a new log function