serviceProvider = new ServiceCollection()
.AddLogging()
.AddDbContext<DataStoreContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")))
.BuildServiceProvider();
//configure console logging
serviceProvider.GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug)
.AddSerilog();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(), "logs/vcibot-{Date}.txt"))
.WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(), "logs/vcibot-errors-{Date}.txt"), LogEventLevel.Error)
.CreateLogger();
logger = serviceProvider.GetService<ILoggerFactory>()
.CreateLogger<Program>();
文件输出的最低级别被设为Information。但是,使用这种设置输出也包含了SQL查询,以下是一个示例:
2017-02-06 10:31:38.282 -08:00 [Information] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT [f].[BuildIdentifier], [f].[Branch], [f].[BuildDate], [f].[StaticAssetSizeInKb] FROM [FileSizesHistoryEntries] AS [f]
是否有一种方法可以禁用SQL查询日志记录(仅在Debug日志级别中记录)?
Configuration
是从哪里得到的? - Jonathan Wood