From ea43a5538260335843458c08bbb09281293ce958 Mon Sep 17 00:00:00 2001 From: areller Date: Wed, 27 May 2020 13:22:36 -0400 Subject: [PATCH] log verbosity in tye run (#506) * tye run log verbosity * formatting --- docs/reference/commandline/tye-run.md | 13 ++++++++++++- src/Microsoft.Tye.Core/HostOptions.cs | 2 ++ src/Microsoft.Tye.Hosting/TyeHost.cs | 13 ++++++++++--- src/tye/Program.RunCommand.cs | 5 ++++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/docs/reference/commandline/tye-run.md b/docs/reference/commandline/tye-run.md index 7112d9ea..a98342bb 100644 --- a/docs/reference/commandline/tye-run.md +++ b/docs/reference/commandline/tye-run.md @@ -7,7 +7,7 @@ ## Synopsis ```text -tye run [-?|-h|--help] [--no-build] [--port ] [--dtrace] [--debug][-f|--force] [] +tye run [-?|-h|--help] [--no-build] [--port ] [--dtrace] [--debug] [-f|--force] [-v|--verbosity ] [] ``` ## Description @@ -51,6 +51,17 @@ If a directory path is specified, `tye run` will default to using these files, i Waits for debugger attach to service. Specify `*` to wait to attach to all services. +- `--verbosity ` + + Sets the output verbosity of the process. + Possible values are + + * `debug` - display all logs that the process outputs + * `info` - display only informational logs + * `quiet` - display only warnings and errors + + The default value is `info` + ## Examples - Run an application in the current directory: diff --git a/src/Microsoft.Tye.Core/HostOptions.cs b/src/Microsoft.Tye.Core/HostOptions.cs index bf7f0130..965059ad 100644 --- a/src/Microsoft.Tye.Core/HostOptions.cs +++ b/src/Microsoft.Tye.Core/HostOptions.cs @@ -23,5 +23,7 @@ namespace Microsoft.Tye public bool NoBuild { get; set; } public int? Port { get; set; } + + public Verbosity LogVerbosity { get; set; } = Verbosity.Debug; } } diff --git a/src/Microsoft.Tye.Hosting/TyeHost.cs b/src/Microsoft.Tye.Hosting/TyeHost.cs index 11838a61..7d816e60 100644 --- a/src/Microsoft.Tye.Hosting/TyeHost.cs +++ b/src/Microsoft.Tye.Hosting/TyeHost.cs @@ -12,7 +12,6 @@ using System.Net.Sockets; using System.Runtime.InteropServices; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Hosting; @@ -112,8 +111,16 @@ namespace Microsoft.Tye.Hosting // Logging for this application builder.Host.UseSerilog((context, configuration) => { + var logLevel = options.LogVerbosity switch + { + Verbosity.Quiet => LogEventLevel.Warning, + Verbosity.Info => LogEventLevel.Information, + Verbosity.Debug => LogEventLevel.Verbose, + _ => default + }; + configuration - .MinimumLevel.Verbose() + .MinimumLevel.Is(logLevel) .Filter.ByExcluding(Matching.FromSource("Microsoft.AspNetCore")) .Filter.ByExcluding(Matching.FromSource("Microsoft.Extensions")) .Filter.ByExcluding(Matching.FromSource("Microsoft.Hosting")) @@ -124,7 +131,7 @@ namespace Microsoft.Tye.Hosting if (sink is object) { - configuration.WriteTo.Sink(sink, LogEventLevel.Verbose); + configuration.WriteTo.Sink(sink, logLevel); } }); diff --git a/src/tye/Program.RunCommand.cs b/src/tye/Program.RunCommand.cs index 788a1c30..2966ec0f 100644 --- a/src/tye/Program.RunCommand.cs +++ b/src/tye/Program.RunCommand.cs @@ -83,7 +83,7 @@ namespace Microsoft.Tye throw new CommandException("No project or solution file was found."); } - var output = new OutputContext(args.Console, Verbosity.Info); + var output = new OutputContext(args.Console, args.Verbosity); output.WriteInfoLine("Loading Application Details..."); var application = await ApplicationFactory.CreateAsync(output, args.Path); @@ -103,6 +103,7 @@ namespace Microsoft.Tye DistributedTraceProvider = args.Dtrace, LoggingProvider = args.Logs, MetricsProvider = args.Metrics, + LogVerbosity = args.Verbosity }; options.Debug.AddRange(args.Debug); @@ -158,6 +159,8 @@ namespace Microsoft.Tye public FileInfo Path { get; set; } = default!; public int? Port { get; set; } + + public Verbosity Verbosity { get; set; } } } }