Ejemplo n.º 1
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var loggerParameters = new ConsoleLoggerParameters()
            {
                Verbosity             = Verbosity,
                PerformanceSummary    = PerformanceSummary,
                DisableConsoleColor   = DisableConsoleColor,
                DisableMPLogging      = DisableMPLogging,
                EnableMPLogging       = EnableMPLogging,
                ErrorsOnly            = ErrorsOnly,
                ForceConsoleColor     = ForceConsoleColor,
                ForceNoAlign          = ForceNoAlign,
                NoItemAndPropertyList = NoItemAndPropertyList,
                NoSummary             = NoSummary,
                ShowCommandLine       = ShowCommandLine,
                ShowEventId           = ShowEventId,
                ShowTimestamp         = ShowTimestamp,
                Summary      = Summary,
                WarningsOnly = WarningsOnly
            };

            var logger = new LoggerDescription
            {
                Assembly   = Assembly,
                ClassName  = PSHost.IsPresent ? PSHostLoggerClassName : PSStreamsLoggerClassName,
                Parameters = loggerParameters.ToString(),
                Verbosity  = Verbosity
            };

            WriteObject(logger);
        }
Ejemplo n.º 2
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var loggerParameters = new ConsoleLoggerParameters()
            {
                Verbosity             = Verbosity,
                PerformanceSummary    = PerformanceSummary,
                DisableConsoleColor   = DisableConsoleColor,
                DisableMPLogging      = DisableMPLogging,
                EnableMPLogging       = EnableMPLogging,
                ErrorsOnly            = ErrorsOnly,
                ForceConsoleColor     = ForceConsoleColor,
                ForceNoAlign          = ForceNoAlign,
                NoItemAndPropertyList = NoItemAndPropertyList,
                NoSummary             = NoSummary,
                ShowCommandLine       = ShowCommandLine,
                ShowEventId           = ShowEventId,
                ShowTimestamp         = ShowTimestamp,
                Summary      = Summary,
                WarningsOnly = WarningsOnly
            };

            var logger = Factory.PowerShellInstance.CreateConsoleLogger(loggerParameters, PSHost.IsPresent);

            WriteObject(logger);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Returns the collection of argument strings defined by this instance.
        /// </summary>
        public IEnumerable <string> GetArguments()
        {
            if (ConsoleLoggerParameters != MSBuildConsoleLoggerParameters.Default)
            {
                var args = new List <string>();

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.PerformanceSummary))
                {
                    args.Add("PerformanceSummary");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.Summary))
                {
                    args.Add("Summary");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.NoSummary))
                {
                    args.Add("NoSummary");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.ErrorsOnly))
                {
                    args.Add("ErrorsOnly");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.WarningsOnly))
                {
                    args.Add("WarningsOnly");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.NoItemAndPropertyList))
                {
                    args.Add("NoItemAndPropertyList");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.ShowCommandLine))
                {
                    args.Add("ShowCommandLine");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.ShowTimestamp))
                {
                    args.Add("ShowTimestamp");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.ShowEventId))
                {
                    args.Add("ShowEventId");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.ForceNoAlign))
                {
                    args.Add("ForceNoAlign");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.DisableConsoleColor))
                {
                    args.Add("DisableConsoleColor");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.DisableMPLogging))
                {
                    args.Add("DisableMPLogging");
                }

                if (ConsoleLoggerParameters.HasFlag(MSBuildConsoleLoggerParameters.EnableMPLogging))
                {
                    args.Add("EnableMPLogging");
                }

                yield return($"/clp:{string.Join(";", args)}");
            }

            if (Verbosity.HasValue)
            {
                yield return($"/verbosity:{MSBuildVerbosityLevel.GetString(Verbosity.Value)}");
            }

            if (!string.IsNullOrEmpty(DistributedFileLogger))
            {
                yield return($"/dfl:\"{DistributedFileLogger}\"");
            }

            foreach (var logger in DistributedLoggers)
            {
                yield return($"/dl:\"{logger}\"");
            }

            if (FileLogger.Default)
            {
                yield return("/fl");
            }

            foreach (var key in FileLoggerParameters.Default.Keys)
            {
                yield return($"/flp:{key}=\"{FileLoggerParameters.Default[key]}\"");
            }

            for (var i = 1; i < 10; i++)
            {
                if (FileLogger[i])
                {
                    yield return($"/fl{i}");
                }

                foreach (var key in FileLoggerParameters[i].Keys)
                {
                    yield return($"/flp{i}:{key}=\"{FileLoggerParameters[i][key]}\"");
                }
            }

            foreach (var logger in Loggers)
            {
                yield return($"/l:\"{logger}\"");
            }

            if (NoConsoleLogger)
            {
                yield return("/noconlog");
            }
        }
        /// <summary>
        /// Gets the MSBuild command-line based on the current properties of this object.
        /// </summary>
        /// <param name="useShortSwitchNames"><code>true</code> to use short command-line argument switches like '/nr' instead of '/NodeReuse', otherwise <code>false</code>.</param>
        /// <returns></returns>
        public string ToString(bool useShortSwitchNames)
        {
            CommandLineBuilder commandLineBuilder = new CommandLineBuilder();

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "t" : "Target")}:", Targets);

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "p" : "Property")}:", Properties);

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "m" : "MaxCpuCount")}:", MaxCpuCount, minValue: 1);

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "tv" : "ToolsVersion")}:", ToolsVersion);

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "v" : "Verbosity")}:", Verbosity);

            commandLineBuilder.AppendSwitchIfNotNullOrEmpty($"/{(useShortSwitchNames ? "val" : "Validate")}:", Validate);

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "ignore" : "IgnoreProjectExtensions")}:", IgnoreProjectExtensions);

            if (ConsoleLoggerParameters != null)
            {
                commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "clp" : "ConsoleLoggerParameters")}:", ConsoleLoggerParameters.ToString(useShortSwitchNames));
            }

            commandLineBuilder.AppendSwitchIfTrue($"/{(useShortSwitchNames ? "dfl" : "DistributedFileLogger")}", DistributedFileLogger);

            foreach (MSBuildLoggerParameters logger in Loggers)
            {
                commandLineBuilder.AppendSwitch($"\"/{(useShortSwitchNames ? "l" : "Logger")}:{logger}\"");
            }

            commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "nr" : "NodeReuse")}:", NodeReuse);

            commandLineBuilder.AppendSwitchIfTrue($"/{(useShortSwitchNames ? "noconlog" : "NoConsoleLogger")}", NoConsoleLogger);

            for (int i = 0; i < FileLoggers.Count; i++)
            {
                string index = FileLoggers.Count > 1 ? i.ToString() : String.Empty;

                commandLineBuilder.AppendSwitch($"/{(useShortSwitchNames ? "fl" : "FileLogger")}{index}");

                commandLineBuilder.AppendSwitchIfNotNull($"/{(useShortSwitchNames ? "flp" : "FileLoggerParameters")}{index}:", FileLoggers[i].ToString(useShortSwitchNames));
            }

            foreach (MSBuildDistributedLoggerParameters distributedLogger in DistributedLoggers)
            {
                commandLineBuilder.AppendSwitch($"\"/{(useShortSwitchNames ? "dl" : "DistributedLogger")}:{distributedLogger}\"");
            }

            if (BinaryLogger != null)
            {
                commandLineBuilder.AppendSwitch($"/{(useShortSwitchNames ? "bl" : "BinaryLogger")}{BinaryLogger}");
            }

            commandLineBuilder.AppendSwitchIfNotNullOrEmpty($"/{(useShortSwitchNames ? "pp" : "PreProcess")}:", PreProcess);

            commandLineBuilder.AppendSwitchIfTrue($"/{(useShortSwitchNames ? "ds" : "DetailedSummary")}", DetailedSummary);

            commandLineBuilder.AppendSwitchIfTrue($"/{(useShortSwitchNames ? "noautorsp" : "NoAutoResponse")}", NoAutoResponse);

            commandLineBuilder.AppendSwitchIfTrue("/NoLogo", NoLogo);

            commandLineBuilder.AppendSwitchIfTrue($"/{(useShortSwitchNames ? "ver" : "Version")}", Version);

            foreach (string responseFile in ResponseFiles.Where(i => !String.IsNullOrWhiteSpace(i)))
            {
                commandLineBuilder.AppendSwitch("@");
                commandLineBuilder.AppendTextUnquoted($"\"{responseFile}\"");
            }

            commandLineBuilder.AppendFileNameIfNotNull(Project);

            return(commandLineBuilder.ToString());
        }
Ejemplo n.º 5
0
        public ILogger CreateConsoleLogger(ConsoleLoggerParameters consoleLoggerParameters, bool usePSHost)
        {
            var verbosity = consoleLoggerParameters.Verbosity ?? LoggerVerbosity.Normal;

            return(CreateConsoleLogger(verbosity, consoleLoggerParameters.ToString(), usePSHost));
        }