how to found out if a custom hook_cron has been run? what is the best way to find out if a custom hook_cron which runs automatically , has been run?
I did use drupal_set_message and watchdog but they weren't suitable for automatic crons.
When Cron runs, it leaves a message in the next table: Reports -> Recent log messages.

If you want to know if a specefic hook has been run, you could try an experiment. For example, you could create a variable called module_variable with value 0 in your  database table and increment this value each time the hook is run.