Problem z zapisem logów do bazy danych (Nlog)

0

Dzień dobry,
postanowiłem wykorzystać w swojej aplikacji webowej (Blazor/ASP.NET Core 6) moduł Nlog.
Poniżej znajduje się zwartość pliku NLog.config

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          autoReload="true"
      internalLogLevel="Error"
      internalLogFile="internal-nlog.txt">
      >
  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>
<targets>
    <target name="db" xsi:type="Database"
            dbProvider="Npgsql.NpgsqlConnection, Npgsql"
            connectionString="Server=192.168.1.5;Port=5432;Database=testowa_baza;User Id=postgres;Password=test1234!;">
      <commandText>
        INSERT INTO logs 
        (logger) 
        VALUES 
        (@logger);
      </commandText>
      <parameter name="@logger" layout="${logger}" />
   </target>
 </targets>
....
  <rules>
    <logger name="*" maxlevel="Info"  writeTo="db"  />
  </rules>

</nlog>

Wszystko fajnie jak chce zapisać logi do pliku, ale nie wiem dlaczego nie zapisuje mi logów do bazy POSTGRESowej :(
screenshot-20240424082134.png
Ustawienia związane z połączeniem do bazy są na pewno ok, ponieważ takie same mam w pozostałej części aplikacji do wykonywania różnych operacji na bazie danych.
Poniżej zainstalowane paczek:
screenshot-20240424082320.png

0
virusek391 napisał(a):

Dzień dobry,
postanowiłem wykorzystać w swojej aplikacji webowej (Blazor/ASP.NET Core 6) moduł Nlog.
Poniżej znajduje się zwartość pliku NLog.config

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          autoReload="true"
      internalLogLevel="Error"
      internalLogFile="internal-nlog.txt">
      >
  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>
<targets>
    <target name="db" xsi:type="Database"
            dbProvider="Npgsql.NpgsqlConnection, Npgsql"
            connectionString="Server=192.168.1.5;Port=5432;Database=testowa_baza;User Id=postgres;Password=test1234!;">
      <commandText>
        INSERT INTO logs 
        (logger) 
        VALUES 
        (@logger);
      </commandText>
      <parameter name="@logger" layout="${logger}" />
   </target>
 </targets>
....
  <rules>
    <logger name="*" maxlevel="Info"  writeTo="db"  />
  </rules>

</nlog>

Wszystko fajnie jak chce zapisać logi do pliku, ale nie wiem dlaczego nie zapisuje mi logów do bazy POSTGRESowej :(
screenshot-20240424082134.png
Ustawienia związane z połączeniem do bazy są na pewno ok, ponieważ takie same mam w pozostałej części aplikacji do wykonywania różnych operacji na bazie danych.
Poniżej zainstalowane paczek:
screenshot-20240424082320.png

Ok, problem rozwiązany. Okazało się że należało doinstalować jeszcze Nlog.Database 😀

2

Tak ogólnie odradzam zapis logów do bazy. Najlepiej do lokalnego pliku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1