C# 正在尝试登录到SQL Server数据库,但它没有';我好像不工作
我正在尝试登录到SQL Server。从我的发现来看,它看起来应该是正确的,但它似乎仍然没有被记录。你能看到我在这段代码里做了什么吗?很抱歉以图片的形式发布代码,这里的格式不适合我 我试着用一种更接近实际情况的方式来尝试,但仍然没有任何运气C# 正在尝试登录到SQL Server数据库,但它没有';我好像不工作,c#,sql-server,asp.net-core-2.1,serilog,C#,Sql Server,Asp.net Core 2.1,Serilog,我正在尝试登录到SQL Server。从我的发现来看,它看起来应该是正确的,但它似乎仍然没有被记录。你能看到我在这段代码里做了什么吗?很抱歉以图片的形式发布代码,这里的格式不适合我 我试着用一种更接近实际情况的方式来尝试,但仍然没有任何运气 公共类启动 { 公共启动(IConfiguration配置) { 配置=配置; Logger.Logger=新的LoggerConfiguration() .Enrich.FromLogContext()的 .WriteTo.MSSqlServer(连接字
公共类启动
{
公共启动(IConfiguration配置)
{
配置=配置;
Logger.Logger=新的LoggerConfiguration()
.Enrich.FromLogContext()的
.WriteTo.MSSqlServer(连接字符串:“”,
表名:“日志”
,schemaName:“日志”
,autoCreateSqlTable:true,
restrictedToMinimumLevel:LogEventLevel.Information)
.CreateLogger();
}
公共IConfiguration配置{get;}
//此方法由运行时调用。请使用此方法将服务添加到容器中。
public void配置服务(IServiceCollection服务)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
//此方法由运行时调用。请使用此方法配置HTTP请求管道。
公共void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂)
{
loggerFactory.AddSerilog();
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
//默认的HSTS值为30天。您可能希望在生产场景中更改此值,请参阅https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}
}
公共类值控制器:控制器库
{
专用只读ILogger\u记录器;
公共价值控制器(ILogger记录器)
{
_记录器=记录器;
}
//获取api/值
[HttpGet]
公共行动结果获取()
{
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
_logger.LogInformation($“开始:”);
返回新字符串[]{“value1”,“value2”};
}
}
您的代码没有设置默认的Serilog Logger,因此所有日志调用都将丢失。你应该加上
Log.Logger=logger;`
这显示在回购页面中:
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
try
{
Log.Information("Starting web host");
CreateWebHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog(); // <-- Add this line;
}
公共静态int Main(字符串[]args)
{
Logger.Logger=新的LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override(“Microsoft”,LogEventLevel.Information)
.Enrich.FromLogContext()的
.WriteTo.Console()
.CreateLogger();
尝试
{
日志信息(“启动web主机”);
CreateWebHostBuilder(args.Build().Run();
返回0;
}
捕获(例外情况除外)
{
Log.Fatal(例如,“主机意外终止”);
返回1;
}
最后
{
Log.CloseAndFlush();
}
}
公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useserlog();//发布代码,而不是代码的屏幕截图。截图不会编译。你应该提到你也使用Serilog。您的代码也不包含有效的连接字符串。您是否用真实的连接字符串替换了此处的连接字符串
?您如何知道日志记录不起作用?该表似乎是根据设置SBTW创建的,因为您的代码从不设置Serilog logger(Log.logger=logger;
),并且.NET的日志记录是在您执行所有日志记录调用后配置的
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
try
{
Log.Information("Starting web host");
CreateWebHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog(); // <-- Add this line;
}