private ILogger GetLogger(Team team, bool verbose) { LoggerLevel level = new LoggerLevel(); Configuration.Bind("Serilog:MinimumLevel", level); string folderName = Path.Combine("TheProjectGameLogs", DateTime.Today.ToString("yyyy-MM-dd"), "Player"); int processId = System.Diagnostics.Process.GetCurrentProcess().Id; string teamId = team.ToString().Substring(0, 3); string fileName = $"{teamId}-{DateTime.Now:HH-mm-ss}-{processId:000000}.log"; string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), folderName, fileName); var logConfig = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.File( path: path, rollOnFileSizeLimit: true, outputTemplate: LoggerTemplate) .WriteTo.Console(outputTemplate: LoggerTemplate) .MinimumLevel.Override("Microsoft", level.Override.Microsoft) .MinimumLevel.Override("System", level.Override.System); level.SetMinimumLevel(logConfig); if (verbose) { logConfig.MinimumLevel.Verbose(); } else { level.SetMinimumLevel(logConfig); } return(logConfig.CreateLogger()); }