add log() macro