I used alternative approach: developing of the application which can be run in both modes: as a windows service and as an interactive application. The application can detect during runtime how it is currently hosted and behave slightly differently. In interactive mode, it can do a lot more, for example, use UI to show logging immediately. The interactive mode makes most of the debugging way easier. It can also be used to install and uninstall the application as a service, start/stop/restart the service running in another instance of the process using Service Controller.
Please see my past solution:
How to install windows service programmatically[
^].
—SA