Make MySQL print a timestamp at each time it starts
You do not need to consult the log. mysqld can tell you.

For anyone running MySQL 5.6 and prior, or MySQL 5.7 in MySQL 5.6 compatibility mode

SELECT NOW() - INTERVAL variable_value SECOND MySQL_Started
FROM information_schema.global_status
WHERE variable_name='Uptime';


For everyone running MySQL 5.7

SELECT NOW() - INTERVAL variable_value SECOND MySQL_Started
FROM performance_schema.global_status
WHERE variable_name='Uptime';


EXAMPLE (MySQL 5.7.12 on my Windows Laptop)

mysql&gt; SELECT NOW() - INTERVAL variable_value SECOND MySQL_Started
    -&gt; FROM performance_schema.global_status
    -&gt; WHERE variable_name='Uptime';
+----------------------------+
| MySQL_Started              |
+----------------------------+
| 2018-03-19 09:10:43.000000 |
+----------------------------+
1 row in set (0.00 sec)


As to why the time is not being printed, here is what I suspect


mysqld_safe starts mysqld and stays in an indefinite loop
mysqld terminates over some minor condition


Out of memory
Too many connections
Accessing a corrupted table

mysqld is started again in the indefinite loop
I mentioned this Mar 05, 2013 : mysqld_safe version different than mysqld?


I do not believe mysqld_safe will print timestamps on mysqld restarts. If you really want mysqld_safe to print a timestamp on mysqld restarts, you can edit mysqld_safe (it is just a bash script) and place a line in the indefinite loop that echoes the date