use log func