簡體   English   中英

Serilog 日志記錄到控制台,但不記錄到文件或數據庫

[英]Serilog logs to console, but not to file or database

我正在使用 ASP.NET 內核創建 web API,但我在讓 Serilog 工作時遇到了一些麻煩。 它將 output 到控制台罰款。 但是,當我告訴它 output 到一個文件時,它會創建一個文件,但不會在其中輸入任何日志。 當我嘗試使用 PostgreSQL 數據庫時也會發生同樣的情況。 關於什么是錯的任何想法?

appsettings.json

{
  "AllowedHosts": "*",

  "Serilog": {
    "MinimumLevel": "Information",
    "Using": [ "Serilog.Sinks.PostgreSQL" ],
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "Serilogs\\AppLogs.log"
        }
      },
      {
        "Name": "PostgreSQL",
        "Args": {
          "connectionString": "Server=fake_server;Port=5432;Database=filter_endpoints;User Id=postgres;Password=fake_password;",
          "tableName": "Logs",
          "needAutoCreateTable": true
        }
      }
    ]
  },

啟動.cs

    public Startup(IConfiguration configuration)
        {
            var configurationBuilder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddJsonFile("appsettings.Development.json")
                .AddEnvironmentVariables();

             Log.Logger = new LoggerConfiguration().
              Enrich.FromLogContext().
              ReadFrom.Configuration(configuration).
              CreateLogger();


            Configuration = configurationBuilder.Build();
        }

編輯我讓它與文件一起工作。 顯然,我有第二個配置代碼塊,例如 Program.cs 中的 Startup.cs 中的代碼。 我把它拿出來,它現在正對着文件。

不過,我仍然無法讓它與數據庫一起使用。 我將其添加到示例代碼中。 為了安全起見,我用示例值替換了連接字符串中的一些值。 我知道連接字符串很好,因為創建了數據庫表。

編輯我終於讓它工作了。 我的代碼確實有一點問題。 我相信我應該在郵件 PostgreSQL package 之上使用 Serilog.Syncs.PostgrSQL.Configuration package。 我不確定這是否是一個貢獻因素。

主要問題是由於某種原因,同步不適用於最新版本的 NpgSQL(我在同步的 Github 問題中發現了這一點)。 我現在降級了 NpgSQL。 希望他們能盡快解決這個問題。

感謝所有試圖幫助我的人。

您是否嘗試過告訴 Serilog 它應該使用哪些接收器? :-)

"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],

來自 Serilog 文檔: https://github.com/serilog/serilog-settings-configuration#serilogsettingsconfiguration--

我終於讓這個工作了。 我的代碼確實有一點問題。 我相信我應該在郵件 PostgreSQL package 之上使用 Serilog.Syncs.PostgrSQL.Configuration package。 我不確定這是否是一個貢獻因素。

主要問題是由於某種原因,同步不適用於最新版本的 NpgSQL(我在同步的 Github 問題中發現了這一點)。 我現在降級了 NpgSQL。 希望他們能盡快解決這個問題。

暫無
暫無

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

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