I have been using serilog for a while, and must admit that it is pretty fine. While it is easy to use it, it has the feature to log the object graph, which handles the de=serializing the object.
Check it out: http://serilog.net/
Moreover, it has many sinks for different data stores, ie: elastic search, mongodb etc.
Below you can fine some of the open source .net projects.
.net foundation projects
up for grabs
Converting a string to Enum in c# is as follows:
object Enum.Parse(System.Type enumType, string value, bool ignoreCase);
You can then cast the object to some enum you desire.
var dat = (Direction) Enum.Parse(typeof(Direction), “North”);
Quite easy right? and you don’t need many if statements to convert a string to Enum.