Some times ago, I had to find problematically full path of Logging file, and open it through the Shell execute. I thought it will be easy, just get the file path from configuration file and open the file with shell execute. But things are different, because you cannot reach system.diagnostic section regularly.
Suppose we have configuration file with diagnostic section defined similar like picture above.
The solution must be very common. Open the config file, find section about logging, and read the path of logging file. The code snippet below shows how to achieve this.
string logFileName=""; //Define XMLDocument for reading config file in to XML doc. XmlDocument xdoc = new XmlDocument(); xdoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); //Filter desired section XmlNode xnodes = xdoc.SelectSingleNode("/configuration/system.diagnostics/sharedListeners"); //enumerate nodes in the section foreach (XmlNode xnn in xnodes.ChildNodes) { //when the right node is met if (xnn.Name == "add") { //enumerate all itc atrubutes foreach(var att in xnn.Attributes) { var a= att as XmlAttribute; if (a != null) { //and get the right one if (a.Name == "fileName") { //store file path in the variable logFileName = a.Value; } } } } } //Open the log file from shell. ProcessStartInfo psi = new ProcessStartInfo(openFileDialog1.FileName); psi.UseShellExecute = true; Process.Start(psi);