Exemplo n.º 1
0
        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());
        }