public override void Initialize(Microsoft.Build.Framework.IEventSource eventSource)
        {
            // The name of the log file should be passed as the first item in the
            // "parameters" specification in the /logger switch.  It is required
            // to pass a log file to this logger. Other loggers may have zero or more than 
            // one parameters.
            if (null == Parameters)
            {
                throw new LoggerException("Log file was not set");
            }
            string[] parameters = Parameters.Split(';');
            
            string logFile = parameters[0];
            if (String.IsNullOrEmpty(logFile))
            {
                throw new LoggerException("Log file was not set.");
            }
            
            if (parameters.Length > 1)
            {
                throw new LoggerException("Too many parameters passed.");
            }

            Console.WriteLine($"using '{logFile}' as log file");
            
            ChromeTracer.Initialize(logFile);

            if (Verbosity >= LoggerVerbosity.Diagnostic)
            {
                eventSource.TaskStarted += TaskStarted;
                eventSource.TaskStarted += TaskFinished;
            }

            if (Verbosity >= LoggerVerbosity.Detailed)
            {
                eventSource.TargetStarted += TargetStarted;
                eventSource.TargetFinished += TargetFinished;
            }
            
            if (Verbosity >= LoggerVerbosity.Normal)
            {
                eventSource.ProjectStarted += ProjectStarted;
                eventSource.ProjectFinished += ProjectFinished;
            }
            
        }
 private void ProjectFinished(object sender, Microsoft.Build.Framework.ProjectFinishedEventArgs e)
 {
     ChromeTracer.AddEndEvent(e.ThreadId, "Project:" + Path.GetFileName(e.ProjectFile), GetTimeStamp(e.Timestamp), string.Empty);
 }
 private void TargetStarted(object sender, Microsoft.Build.Framework.TargetStartedEventArgs e)
 {
     ChromeTracer.AddBeginEvent(e.ThreadId, "Target:" +e.TargetName, GetTimeStamp(e.Timestamp), string.Empty);
 }
 private void TaskFinished(object sender, TaskStartedEventArgs e)
 {
     ChromeTracer.AddEndEvent(e.ThreadId, "Task:" + e.TaskName, GetTimeStamp(e.Timestamp), string.Empty);
 }