Display custom output if field doesn't have value in hook_field_formatter_view
I am able to do this as below in hook_field_formatter_view().

switch ($instance ['widget'] ['type']) {
  case 'my_widget' :
    if (empty ( $items )) {
      $output = generate_custom_output();
      $element[]['#markup'] = $output;
      $element ['#items'][] = array('value' =&gt; $output);
      $items[] = array('value' =&gt; $output);
    }
  break;
}


If anyone have better solution please provide.