What would your singleton do exactly?
One of the advantages of libraries like Nlog (and log4j etc) is that when you log, it will log with the relevant class logger - which means you can then tune the logging appropriately. If you had some singleton with just a single Logger
instance, you would immediately lose this benefit. I would recommend you use the technique shown in the documentation, where each class has its own logger.
As for emitting the class name etc, look at the layout renderers page of the docs, which has many options: {callsite}
and {threadid}
may be what you're after.