NLog to PostgreSQL connection

故事扮演 提交于 2019-12-12 12:41:16

问题


I have a problem in connecting with the postgres database through NLog.

I made the database with query:

CREATE TABLE system_logging
( 
ID serial primary key,
entered_date date default Now(),
log_application varchar(200) NULL, 
log_date character varying(100) NULL, 
log_level character varying(100) NULL, 
log_logger character varying(8000) NULL, 
log_message character varying(8000) NULL, 
log_machine_name character varying(8000) NULL, 
log_user_name character varying(8000) NULL, 
log_call_site character varying(8000) NULL, 
log_thread character varying(100) NULL, 
log_exception character varying(8000) NULL, 
log_stacktrace character varying(8000) NULL 
)

And my connecting target is defined as:

<target name="database" xsi:type="Database"
         connectionString="Server=127.0.0.1;Port=5432;User Id=test;Password=t;Database=Test;">
      <commandText>Insert into "system_logging" ("log_date","log_level","log_logger","log_message","log_machine_name","log_user_name","log_call_site","log_thread","log_exception","log_stacktrace") values (:time_stamp,:level,:logger,:message,:machinename,:user_name,:call_site,:threadid,:log_exception,:stacktrace)</commandText>

   <parameter name="@time_stamp" layout="${longdate}"/> 
  <parameter name="@level" layout="${level}"/> 
  <parameter name="@logger" layout="${logger}"/> 
  <parameter name="@message" layout="${message}"/> 
  <parameter name="@machinename" layout="${machinename}"/> 
  <parameter name="@user_name" layout="${windows-identity:domain=true}"/> 
  <parameter name="@call_site" layout="${callsite:filename=true}"/>

  <parameter name="@threadid" layout="${threadid}"/> 
  <parameter name="@log_exception" layout="${exception}"/> 
  <parameter name="@stacktrace" layout="${stacktrace}"/>
</target>  

回答1:


So I searched on and got an answer :

 <target name="database" type="Database"> 
    <dbProvider>
        Npgsql.NpgsqlConnection,Npgsql,Version=3.0.3.0,Culture=neutral,PublicKeyToken=5d8b90d52f46fda7
    </dbProvider>
    <connectionString> 
        Server=127.0.0.1;Port=5432;User Id=postgres;Password=postgres;Database=sample;
    </connectionString> 
    <commandText> 
        insert into system_logging(log_date,log_level,log_logger,log_message,log_machine_name, log_user_name, log_call_site, log_thread, log_exception, log_stacktrace) values(@time_stamp, @level, @logger, @message,@machinename, @user_name, @call_site, @threadid, @log_exception, @stacktrace); 
    </commandText> 
    <parameter name="@time_stamp" layout="${longdate}"/> 
    <parameter name="@level" layout="${level}"/> 
    <parameter name="@logger" layout="${logger}"/> 
    <parameter name="@message" layout="${message}"/> 
    <parameter name="@machinename" layout="${machinename}"/> 
    <parameter name="@user_name" layout="${windows-identity:domain=true}"/> 
    <parameter name="@call_site" layout="${callsite:filename=true}"/>
    <parameter name="@threadid" layout="${threadid}"/> 
    <parameter name="@log_exception" layout="${exception}"/> 
    <parameter name="@stacktrace" layout="${stacktrace}"/>
</target> 


来源:https://stackoverflow.com/questions/33851574/nlog-to-postgresql-connection

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!