/// <summary> /// 写入SqlServer /// </summary> /// <param name="logConfig">输出日志配置</param> /// <returns></returns> public static ILogger SqlServer(Logs.SerilogConfig logConfig) { var logger = new LoggerConfiguration().MinimumLevel.Verbose(); if (logConfig.DataBase != null) { logger.WriteTo.MSSqlServer(logConfig.DataBase.ConnectionString, logConfig.DataBase.Table, batchPostingLimit: logConfig.DataBase.Batch); } else { foreach (var dataBaseConfig in logConfig.DataBases) { logger.WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == Utils.EnumParse <LogEventLevel>(dataBaseConfig.Level.ToString())).WriteTo.MSSqlServer(dataBaseConfig.ConnectionString, dataBaseConfig.Table, batchPostingLimit: dataBaseConfig.Batch)); } } return(logger.CreateLogger()); }
/// <summary> /// 将日志写入文件 /// </summary> /// <param name="logConfig">输出日志配置</param> /// <param name="logFileBytes">日志大小</param> /// <returns></returns> public static ILogger FileLogger(Logs.SerilogConfig logConfig, long logFileBytes = 21474836480) { var logger = new LoggerConfiguration().MinimumLevel.Verbose(); if (!string.IsNullOrEmpty(logConfig.FilePath)) { logger.WriteTo.RollingFile(logConfig.FilePath, fileSizeLimitBytes: logFileBytes, shared: true, flushToDiskInterval: TimeSpan.FromSeconds(1)); } else { foreach (var fileConfig in logConfig.Files) { logger.WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == Utils.EnumParse <LogEventLevel>(fileConfig.Level.ToString())).WriteTo.RollingFile(fileConfig.FilePath, fileSizeLimitBytes: logFileBytes, shared: true, flushToDiskInterval: TimeSpan.FromSeconds(1))); } } return(logger.CreateLogger()); }