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); }
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); }
/// <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()); }
public ILogger CreateConsoleLogger(ConsoleLoggerParameters consoleLoggerParameters, bool usePSHost) { var verbosity = consoleLoggerParameters.Verbosity ?? LoggerVerbosity.Normal; return(CreateConsoleLogger(verbosity, consoleLoggerParameters.ToString(), usePSHost)); }