예제 #1
0
        /// <summary>
        /// Initialize the logger. The logger will register with AnyEventRaised on the eventSource
        /// </summary>
        /// <param name="eventSource">eventSource which the logger will register on to listen for events</param>
        /// <exception cref="InternalErrorException">EventSource is null</exception>
        public void Initialize(IEventSource eventSource)
        {
            ErrorUtilities.VerifyThrow(eventSource != null, "eventSource is null");
            eventSource.AnyEventRaised += EventSource_AnyEventRaised;

            IEventSource2 eventSource2 = eventSource as IEventSource2;

            if (eventSource2 != null)
            {
                // Telemetry events aren't part of "all" so they need to be forwarded separately
                eventSource2.TelemetryLogged += EventSource_AnyEventRaised;
            }
        }
예제 #2
0
        /// <inheritdoc />
        public void Initialize(IEventSource eventSource)
        {
            _eventSource = (IEventSource2)eventSource;

            _eventSource.AnyEventRaised  += OnAnyEventRaised;
            _eventSource.TelemetryLogged += OnTelemetryLogged;

            foreach (ILogger logger in _loggers)
            {
                logger.Initialize(this);
            }

            OnAnyEventRaised(this, new BuildStartedEventArgs("Build Started", null, environmentOfBuild: Environment.GetEnvironmentVariables().Cast <DictionaryEntry>().OrderBy(i => (string)i.Key).ToDictionary(i => (string)i.Key, i => (string)i.Value)));
        }
예제 #3
0
        public override void Initialize(IEventSource eventSource)
        {
            if (_telemetry != null)
            {
                IEventSource2 eventSource2 = eventSource as IEventSource2;

                if (eventSource2 != null)
                {
                    eventSource2.TelemetryLogged += (sender, telemetryEventArgs) =>
                    {
                        Console.WriteLine($"Received telemetry event '{telemetryEventArgs.EventName}'");
                        _telemetry.TrackEvent(telemetryEventArgs.EventName, telemetryEventArgs.Properties, measurements: null);
                    };
                }
            }
        }
예제 #4
0
        public void Initialize(IEventSource eventSource)
        {
            var parameters = LoggerParameters.Parse(this.Parameters);

            _solutionDirectory = parameters["SolutionDir"];

            var verbosityString = parameters["Verbosity"];

            Verbosity = !string.IsNullOrEmpty(verbosityString) && Enum.TryParse(verbosityString, out LoggerVerbosity verbosity)
                ? verbosity
                : LoggerVerbosity.Normal;

            var ignoredTargets = new string[]
            {
                "GetCopyToOutputDirectoryItems",
                "GetNativeManifest",
                "GetTargetPath",
                "GetTargetFrameworks",
            };

            _ignoredTargets = new HashSet <string>(ignoredTargets, StringComparer.OrdinalIgnoreCase);

            // TargetsNotLogged is an optional parameter.
            var targetsNotLogged = parameters["TargetsNotLogged"];

            if (!string.IsNullOrEmpty(targetsNotLogged))
            {
                _ignoredTargets.UnionWith(targetsNotLogged.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
            }

            eventSource.ErrorRaised    += OnErrorRaised;
            eventSource.WarningRaised  += OnWarningRaised;
            eventSource.ProjectStarted += OnProjectStarted;

            IEventSource2 eventSource2 = eventSource as IEventSource2;

            eventSource2.TelemetryLogged += OnTelemetryLogged;

            if (Verbosity == LoggerVerbosity.Diagnostic)
            {
                eventSource.ProjectFinished += OnProjectFinished;
            }
        }
예제 #5
0
        public override void Initialize(IEventSource eventSource)
        {
            try
            {
                if (_telemetry != null && _telemetry.Enabled)
                {
                    IEventSource2 eventSource2 = eventSource as IEventSource2;

                    if (eventSource2 != null)
                    {
                        eventSource2.TelemetryLogged += OnTelemetryLogged;
                    }
                }
            }
            catch (Exception)
            {
                // Exceptions during telemetry shouldn't cause anything else to fail
            }
        }