Console.ForegroundColor has the getter and setter properties, so technically you can just save the old color, assign it, write and restore the old color.
However, this is not thread safe. Another thread can also use Console.Write and set its ForegroundColor property to its own preferred color. This is a race, your registrar may end up writing in a color chosen by another thread. And vice versa. There is a lock that prevents the thread from writing text to the console and displaying their output, but it's too late. There is no easy way to solve this problem, except that your logger uses pinvoke to not use ForegroundColor at all.
This is a stupid little detail if it ever was. Therefore, it is usually best to use a journal library that takes care of these unpleasant details. For example, NLog.
source share