You can order up your approaches as below,
ULS
Event Viewer
Text file.
I suggest, ULS - Its the SharePoint native logging and it manages to remove the older files periodically, its better to keep all the SharePoint related logs in one place "ULS". Use SPDiagnosticsService.Local.WriteTrace
method in your timer job to log into the ULS logs
If you find that reading logs from ULS is difficult then you can end up with your own text file for logging the errors/messages.
Have a look at the below link too,
Five suggestions to implement a better logging in SharePoint