add log func