簡體   English   中英

獲取 NpgSql 實體框架查詢文本

[英]Get NpgSql Entity Framework query text

我正在使用 Npgsql.EntityFrameworkCore.PostgreSQL 2.2.0。 我希望能夠看到將在數據庫上執行的查詢。 有沒有辦法做到這一點?

如果您在服務注冊時使用.AddDbContext.AddDbContextPool ,通常不需要顯式配置LoggerFactory EF Core 自動獲取現有記錄器工廠(已配置)並使用調試級別日志來記錄查詢。

您也可以啟用

builder.EnableSensitiveDataLogging();  // << Enables query parameter/value logging
builder.EnableDetailedErrors(); // << Enables Detailed Errors such as parameter mapping errors
builder.ConfigureWarnings(warnings => 
    warnings.Log(CoreEventId.IncludeIgnoredWarning));  << Includes ignored warnings

您唯一需要做的就是相應地更改日志記錄級別

"Logging": {
  "LogLevel": {
    ....
    "Microsoft.EntityFrameworkCore.Database.Command": "Information"
  }
}

或者您可以使用自定義記錄器工廠

public static readonly LoggerFactory MyLoggerFactory
    = new LoggerFactory(new[]
    {
        new ConsoleLoggerProvider((category, level)
            => category == DbLoggerCategory.Database.Command.Name
               && level == LogLevel.Information, true)
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM