static async Task Main(string[] args) { Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", "Development"); var host = Host.CreateDefaultBuilder() .ConfigureServices(x => { }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); logging.AddZLoggerConsole(options => { options.EnableStructuredLogging = true; options.FlushRate = TimeSpan.FromSeconds(5); }); }) .UseConsoleAppFramework <Program>(args) .Build(); GlobalLogger.SetServiceProvider(host.Services.GetRequiredService <ILoggerFactory>(), "MyApp"); await host.RunAsync(); }
static async Task Main(string[] args) { Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", "Development"); var host = Host.CreateDefaultBuilder() .ConfigureServices(x => { }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); logging.AddZLoggerConsole(options => { options.EnableStructuredLogging = false; //options.FlushRate = TimeSpan.FromSeconds(5); #if DEBUG // \u001b[31m => Red(ANSI Escape Code) // \u001b[0m => Reset // \u001b[38;5;***m => 256 Colors(08 is Gray) options.PrefixFormatter = (writer, info) => { if (info.LogLevel == LogLevel.Error) { ZString.Utf8Format(writer, "\u001b[31m[{0}]", info.LogLevel); } else { if (!info.CategoryName.StartsWith("MyApp")) // your application namespace. { ZString.Utf8Format(writer, "\u001b[38;5;08m[{0}]", info.LogLevel); } else { ZString.Utf8Format(writer, "[{0}]", info.LogLevel); } } }; options.SuffixFormatter = (writer, info) => { if (info.LogLevel == LogLevel.Error || !info.CategoryName.StartsWith("MyApp")) { ZString.Utf8Format(writer, "\u001b[0m", ""); } }; #endif }, configureEnableAnsiEscapeCode: true); }) .UseConsoleAppFramework <Program>(args) .Build(); GlobalLogger.SetServiceProvider(host.Services.GetRequiredService <ILoggerFactory>(), "MyApp"); await host.RunAsync(); }
static async Task Main(string[] args) { var host = Host.CreateDefaultBuilder() .ConfigureServices(x => { }) .ConfigureLogging(logging => { logging.ClearProviders(); // logging.SetMinimumLevel(LogLevel.Trace); logging.AddZLoggerConsole(options => { options.EnableStructuredLogging = true; }); }) .UseConsoleAppFramework <Program>(args) .Build(); GlobalLogger.SetServiceProvider(host.Services.GetRequiredService <ILoggerFactory>(), "MyApp"); await host.RunAsync(); }
static async Task Main(string[] args) { var host = Host.CreateDefaultBuilder() .ConfigureLogging(logging => { logging.ClearProviders(); // optional(MS.E.Logging): default is Info, you can use this or AddFilter to filtering log. logging.SetMinimumLevel(LogLevel.Trace); // .AddZLoggerConsole(configure => // { // configure.IsStructuredLogging = true; // }); // logging.AddFilter( logging.AddFilter <ZLoggerConsoleLoggerProvider>(level => level == LogLevel.Information); logging.AddFilter <ZLoggerFileLoggerProvider>(level => level == LogLevel.Trace); //logging.AddFilter<ZLoggerFileLoggerProvider>( //logging.AddFilter<ZLoggerConsoleLoggerProvider>(x => true).AddZLoggerConsole(); //logging.AddFilter<SimpleConsoleLoggerProvider>(x => x == LogLevel.Debug).AddSimpleConsole(); //logging.AddFilter((category, level) => // { // if (category == "Microsoft.Extensions.Hosting.Internal.Host") return true; // return false; // }) // .AddZLoggerConsole(); //logging.AddFilter((category, level) => //{ // if (category != "Microsoft.Extensions.Hosting.Internal.Host") return true; // return false; //}) // .AddConsole(); /* * logging.AddZLoggerRollingFile((dt, x) => $"logs/{dt.ToLocalTime():yyyy-MM-dd_HH-mm-ss}_{x:000}.log", * x => { var time = x.ToLocalTime(); return new DateTimeOffset(time.Year, time.Month, time.Day, 0, 0, 0, time.Second, TimeSpan.Zero); }, * 1024); */ // logging.ReplaceToSimpleConsole(); //logging.AddZLoggerRollingFile((dt, x) => $"logs/{dt.ToLocalTime():yyyy-MM-dd}_{x:000}.log", x => x.ToLocalTime().Date, 1024 * 1024); //logging.AddZLoggerLogProcessor(new Processor()); //logging.AddZLoggerFile("filelog.log"); //logging.AddZLoggerConsole(); //logging.AddZLoggerFile("foo.log"); //logging.AddZLoggerConsole(x => //{ // //x.PrefixFormatter = (writer, info) => // //{ // // ZString.Utf8Format(writer, "[{0}]", info.LogLevel); // //}; // //Utf16PreparedFormat // // x.IsStructuredLogging = true; // //x.SuffixFormatter = (writer, info) => prepared.FormatTo(ref writer, info.LogLevel); //}); var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); socket.Connect("127.0.0.1", 12345); var network = new NetworkStream(socket); logging.AddZLoggerStream(network); var gitHash = Guid.NewGuid().ToString(); logging.AddZLoggerConsole(options => { options.EnableStructuredLogging = true; var gitHashName = JsonEncodedText.Encode("GitHash"); var gitHashValue = JsonEncodedText.Encode(gitHash); options.StructuredLoggingFormatter = (writer, info) => { writer.WriteString(gitHashName, gitHashValue); info.WriteToJsonWriter(writer); }; }); logging.AddZLoggerRollingFile((dt, x) => $"logs/{dt.ToLocalTime():yyyy-MM-dd}_{x:000}.log", x => x.ToLocalTime().Date, 1024); }) .UseConsoleAppFramework <Program>(args) .Build(); GlobalLogger.SetServiceProvider(host.Services.GetRequiredService <ILoggerFactory>(), "MyApp"); await host.RunAsync(); }