develop log func