static void LogToTestContext(string logDomain, LogLevelFlags logLevel, string message) { // FIXME: messages on the GC finalizer thread are lost TestContext.Error.WriteLine(TestContext.CurrentContext?.Test?.FullName); TestContext.Error.WriteLine($"({logDomain}) {logLevel}: {message}"); TestContext.CurrentContext.Test.Properties.Set(logLevel.ToString(), message); }
public void GetXml(System.Xml.XmlWriter xw) { xw.WriteStartElement("DebugEntry"); xw.WriteElementString("Message", msg); xw.WriteElementString("Counter", counter.ToString()); xw.WriteElementString("Severity", severity.ToString()); xw.WriteElementString("DateTimeUtc", utc.ToString("yyyyMMddTHHmmssZ")); if ((parameters == null) || parameters.Length == 0) xw.WriteElementString("Parameters", null); else { xw.WriteStartElement("Parameters"); foreach (string p in parameters) xw.WriteElementString("Param", p); xw.WriteEndElement(); } if (sf.Count == 0) xw.WriteElementString("StackFrames", null); else { xw.WriteStartElement("StackFrames"); foreach (var f in sf) { xw.WriteStartElement("StackFrame"); xw.WriteElementString("Method", f.GetMethod().Name + " (" + f.GetMethod().DeclaringType.FullName + ")"); xw.WriteElementString("FileName", System.IO.Path.GetFileName(f.GetFileName())); xw.WriteElementString("Line", f.GetFileLineNumber().ToString()); xw.WriteEndElement(); } xw.WriteEndElement(); } xw.WriteEndElement(); }