Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在尝试登录到SQL Server数据库,但它没有';我好像不工作_C#_Sql Server_Asp.net Core 2.1_Serilog - Fatal编程技术网

C# 正在尝试登录到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(连接字

我正在尝试登录到SQL Server。从我的发现来看,它看起来应该是正确的,但它似乎仍然没有被记录。你能看到我在这段代码里做了什么吗?很抱歉以图片的形式发布代码,这里的格式不适合我

我试着用一种更接近实际情况的方式来尝试,但仍然没有任何运气

公共类启动
{
公共启动(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;
}