in src/StructuredLogger/BinaryLogger/BuildEventArgsWriter.cs [174:204]
private void WriteCore(BuildEventArgs e)
{
switch (e)
{
case BuildMessageEventArgs buildMessage: Write(buildMessage); break;
case TaskStartedEventArgs taskStarted: Write(taskStarted); break;
case TaskFinishedEventArgs taskFinished: Write(taskFinished); break;
case TargetStartedEventArgs targetStarted: Write(targetStarted); break;
case TargetFinishedEventArgs targetFinished: Write(targetFinished); break;
case BuildErrorEventArgs buildError: Write(buildError); break;
case BuildWarningEventArgs buildWarning: Write(buildWarning); break;
case ProjectStartedEventArgs projectStarted: Write(projectStarted); break;
case ProjectFinishedEventArgs projectFinished: Write(projectFinished); break;
case BuildStartedEventArgs buildStarted: Write(buildStarted); break;
case BuildFinishedEventArgs buildFinished: Write(buildFinished); break;
case ProjectEvaluationStartedEventArgs projectEvaluationStarted: Write(projectEvaluationStarted); break;
case ProjectEvaluationFinishedEventArgs projectEvaluationFinished: Write(projectEvaluationFinished); break;
default:
// convert all unrecognized objects to message
// and just preserve the message
var buildMessageEventArgs = new BuildMessageEventArgs(
e.Message,
e.HelpKeyword,
e.SenderName,
MessageImportance.Normal,
e.Timestamp);
buildMessageEventArgs.BuildEventContext = e.BuildEventContext ?? BuildEventContext.Invalid;
Write(buildMessageEventArgs);
break;
}
}