in src/StructuredLogger/Serialization/XmlLogWriter.cs [94:181]
private void WriteAttributes(TreeNode node)
{
var folder = node as Folder;
if (folder != null)
{
if (!Serialization.IsValidXmlElementName(folder.Name))
{
SetString(nameof(folder.Name), folder.Name);
}
if (folder.IsLowRelevance)
{
SetString(nameof(folder.IsLowRelevance), "true");
}
return;
}
var namedNode = node as NamedNode;
if (namedNode != null)
{
SetString(nameof(NamedNode.Name), namedNode.Name?.Replace("\"", ""));
}
var textNode = node as TextNode;
if (textNode != null)
{
SetString(nameof(TextNode.Text), textNode.Text);
}
if (node is TimedNode timedNode)
{
AddStartAndEndTime(timedNode);
SetString(nameof(TimedNode.NodeId), timedNode.NodeId.ToString());
}
var task = node as Task;
if (task != null)
{
SetString(nameof(task.FromAssembly), task.FromAssembly);
SetString(nameof(task.CommandLineArguments), task.CommandLineArguments);
SetString(nameof(AttributeNames.File), task.SourceFilePath);
return;
}
var target = node as Target;
if (target != null)
{
SetString(nameof(target.DependsOnTargets), target.DependsOnTargets);
if (target.IsLowRelevance)
{
SetString(nameof(target.IsLowRelevance), "true");
}
SetString(nameof(AttributeNames.File), target.SourceFilePath);
return;
}
var diagnostic = node as AbstractDiagnostic;
if (diagnostic != null)
{
SetString(nameof(diagnostic.Code), diagnostic.Code);
SetString(nameof(diagnostic.File), diagnostic.File);
SetString(nameof(diagnostic.LineNumber), diagnostic.LineNumber.ToString());
SetString(nameof(diagnostic.ColumnNumber), diagnostic.ColumnNumber.ToString());
SetString(nameof(diagnostic.EndLineNumber), diagnostic.EndLineNumber.ToString());
SetString(nameof(diagnostic.EndColumnNumber), diagnostic.EndColumnNumber.ToString());
SetString(nameof(diagnostic.ProjectFile), diagnostic.ProjectFile);
return;
}
var project = node as Project;
if (project != null)
{
SetString(nameof(project.ProjectFile), project.ProjectFile);
return;
}
var build = node as Build;
if (build != null)
{
SetString(nameof(build.Succeeded), build.Succeeded.ToString());
SetString(nameof(Build.IsAnalyzed), build.IsAnalyzed.ToString());
return;
}
}