private static string GetLoggerSettings(MSBuildFileLoggerSettings loggerSettings, ICakeEnvironment environment) { var settings = new List <string>(); var commonArguments = GetLoggerSettings(loggerSettings); if (commonArguments.Any()) { settings.Add(commonArguments); } if (loggerSettings.LogFile != null) { var filePath = string.IsNullOrWhiteSpace(loggerSettings.LogFile) ? string.Empty : FilePath.FromString(loggerSettings.LogFile).MakeAbsolute(environment).ToString(); settings.Add($"LogFile=\"{filePath}\""); } if (loggerSettings.AppendToLogFile) { settings.Add("Append"); } if (!string.IsNullOrWhiteSpace(loggerSettings.FileEncoding)) { settings.Add($"Encoding={loggerSettings.FileEncoding}"); } return(string.Join(";", settings)); }
private static string GetLoggerArgument(int index, MSBuildFileLoggerSettings logger, ICakeEnvironment environment) { var parameters = GetLoggerSettings(logger, environment); if (string.IsNullOrWhiteSpace(parameters)) { return(string.Empty); } var counter = index == 0 ? string.Empty : index.ToString(); return($"/fileLogger{counter} /fileloggerparameters{counter}:{parameters}"); }
/// <summary> /// Adds a file logger. /// </summary> /// <param name="settings">The settings.</param> /// <param name="fileLoggerParameters">Parameters to be passed to the logger.</param> /// <returns>The same <see cref="DotNetCoreMSBuildSettings"/> instance so that multiple calls can be chained.</returns> /// <remarks> /// Each file logger will be declared in the order added. /// The first file logger will match up to the /fl parameter. /// The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. /// </remarks> public static DotNetCoreMSBuildSettings AddFileLogger(this DotNetCoreMSBuildSettings settings, MSBuildFileLoggerSettings fileLoggerParameters) { EnsureSettings(settings); if (fileLoggerParameters == null) { throw new ArgumentNullException(nameof(fileLoggerParameters)); } settings.FileLoggers.Add(fileLoggerParameters); return(settings); }
/// <summary> /// Adds a file logger. /// </summary> /// <param name="settings">The settings.</param> /// <param name="fileLoggerParameters">Parameters to be passed to the logger.</param> /// <returns>The same <see cref="DotNetCoreMSBuildSettings"/> instance so that multiple calls can be chained.</returns> /// <remarks> /// Each file logger will be declared in the order added. /// The first file logger will match up to the /fl parameter. /// The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. /// </remarks> public static DotNetCoreMSBuildSettings AddFileLogger(this DotNetCoreMSBuildSettings settings, MSBuildFileLoggerSettings fileLoggerParameters) { return((DotNetCoreMSBuildSettings)DotNet.MSBuild.DotNetMSBuildSettingsExtensions.AddFileLogger(settings, fileLoggerParameters)); }