示例#1
0
        private BuildEventArgs CreateBuildEventArgs(string formattedMessage, Level level)
        {
            TargetBuildEventArgs args = new TargetBuildEventArgs(new Target(), Stopwatch.StartNew());

            args.Message      = formattedMessage;
            args.MessageLevel = level;
            return(args);
        }
示例#2
0
 /// <summary>
 /// Signals that logging for a target has started.  May not correspond with <see cref="TargetStarted(object, TargetBuildEventArgs)"/> if
 /// the target is running in parallel with buffered logging.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">A <see cref="TargetBuildEventArgs" /> object that contains the event data.</param>
 public virtual void TargetLoggingStarted(object sender, TargetBuildEventArgs e)
 {
     lock (_xmlWriter)
     {
         _xmlWriter.WriteStartElement(Elements.Target);
         WriteNameAttribute(e.Target.Name);
         _xmlWriter.Flush();
     }
 }
示例#3
0
 /// <summary>
 /// Signals that logging for a target has finished.  May not correspond with <see cref="TargetFinished(object, TargetBuildEventArgs)"/> if
 /// the target is running in parallel with buffered logging.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">A <see cref="TargetBuildEventArgs" /> object that contains the event data.</param>
 /// <remarks>
 /// This event will still be fired if an error occurred during the build.
 /// </remarks>
 public virtual void TargetLoggingFinished(object sender, TargetBuildEventArgs e)
 {
     lock (_xmlWriter)
     {
         // output total target duration
         WriteDuration(e.Stopwatch);
         // close target element
         _xmlWriter.WriteEndElement();
         _xmlWriter.Flush();
     }
 }
示例#4
0
        public void TargetStartedAndTargetFinished()
        {
            string expected = @"<target name=""foo""><duration>123</duration></target>";

            _log = CreateXmlLogger(CreateDateTimeProvider(123));

            TargetBuildEventArgs args = CreateBuildEventArgsWithTarget("foo");

            _log.TargetStarted(this, args);
            _log.TargetFinished(this, args);
            Assert.AreEqual(expected, _log.ToString());
        }
        /// <summary>
        /// Dispatches a <see cref="TargetFinished" /> event to the build listeners
        /// for this <see cref="Project" />.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">A <see cref="TargetBuildEventArgs" /> that contains the event data.</param>
        public void OnTargetLoggingFinished(object sender, TargetBuildEventArgs e)
        {
            this.disablingLock.AcquireReaderLock(1000);

            if (disabled)
            {
                this.DestinationLogger.OnTargetLoggingFinished(sender, e);
            }
            else
            {
                this.LoggingQueue.Enqueue(() => { this.DestinationLogger.OnTargetLoggingFinished(sender, e); });
            }

            this.disablingLock.ReleaseReaderLock();
        }
        /// <summary>
        /// Signals that a target has started.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">A <see cref="BuildEventArgs" /> object that contains the event data.</param>
        public virtual void TargetStarted(object sender, TargetBuildEventArgs e)
        {
            int indentationLevel = 0;

            if (e.Project != null)
            {
                indentationLevel = e.Project.IndentationLevel * e.Project.IndentationSize;
            }

            if (e.Target != null)
            {
                OutputMessage(Level.Info, string.Empty, indentationLevel);
                OutputMessage(Level.Info, string.Format(CultureInfo.InvariantCulture,
                                                        "{0}:", e.Target.Name), indentationLevel);
                OutputMessage(Level.Info, string.Empty, indentationLevel);
            }
        }
示例#7
0
        public void TargetStarted(object sender, TargetBuildEventArgs e)
        {
            _targetStartedFired = true;

            if (e.Target != null)
            {
                if (_executedTargets.ContainsKey(e.Target.Name))
                {
                    _executedTargets[e.Target.Name] = ((int)_executedTargets[e.Target.Name]) + 1;
                }
                else
                {
                    _executedTargets.Add(e.Target.Name, 1);
                }
                _targetStartTimes[e.Target.Name] = DateTime.UtcNow;
            }
        }
示例#8
0
 /// <summary>
 /// Signals that a target has finished.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">A <see cref="TargetBuildEventArgs" /> object that contains the event data.</param>
 /// <remarks>
 /// This event will still be fired if an error occurred during the build.
 /// </remarks>
 public void TargetFinished(object sender, TargetBuildEventArgs e)
 {
 }
示例#9
0
 /// <summary>
 /// Signals that a target has started.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">A <see cref="TargetBuildEventArgs" /> object that contains the event data.</param>
 public void TargetStarted(object sender, TargetBuildEventArgs e)
 {
 }
示例#10
0
 /// <summary>
 /// Signals that logging for a target has stopped
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">A <see cref="BuildEventArgs" /> object that contains the event data.</param>
 public void TargetLoggingFinished(object sender, TargetBuildEventArgs e)
 {
     throw new NotImplementedException();
 }
示例#11
0
 public void TargetFinished(object sender, TargetBuildEventArgs e)
 {
     _targetFinishedFired = true;
     _targetFinishTimes[e.Target.Name] = DateTime.UtcNow;
 }