The NLog.config file does not establish a connection string.
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="c:\temp\internal-nlog.txt"> <extensions> <add assembly="NLog.Web.AspNetCore" /> </extensions> <variable name="SirNLogDb" value="data source=SQL_MULALLEY;initial catalog=LogFiles;User ID=xxx;Password=yyy;"> </variable> <targets> <target name="db" xsi:type="Database" dbProvider="System.Data.SqlClient" connectionString="${var:SirNLogDb}" commandType="StoredProcedure" commandText="[dbo].[NLog_AddEntry_p]"> <parameter name="@machineName" layout="${machinename}" /> <parameter name="@siteName" layout="${iis-site-name}" /> <parameter name="@logged" layout="${date}" /> <parameter name="@level" layout="${level}" /> <parameter name="@username" layout="${aspnet-user-identity}" /> <parameter name="@message" layout="${message}" /> <parameter name="@logger" layout="${logger}" /> <parameter name="@properties" layout="${all-event-properties:separator=|}" /> <parameter name="@serverName" layout="${aspnet-request:serverVariable=SERVER_NAME}" /> <parameter name="@port" layout="${aspnet-request:serverVariable=SERVER_PORT}" /> <parameter name="@url" layout="${aspnet-request:serverVariable=HTTP_URL}" /> <parameter name="@https" layout="${when:inner=1:when='${aspnet-request:serverVariable=HTTPS}' == 'on'}${when:inner=0:when='${aspnet-request:serverVariable=HTTPS}' != 'on'}" /> <parameter name="@serverAddress" layout="${aspnet-request:serverVariable=LOCAL_ADDR}" /> <parameter name="@remoteAddress" layout="${aspnet-request:serverVariable=REMOTE_ADDR}:${aspnet-request:serverVariable=REMOTE_PORT}" /> <parameter name="@callSite" layout="${callsite}" /> <parameter name="@exception" layout="${exception:tostring}" /> </target> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="database" /> </rules> </nlog>
I set a breakpoint and the connection string is empty; 
My launch method is as follows;
public void ConfigureServices(IServiceCollection services) { services.AddMvcCore() .AddMvcOptions(o => o.OutputFormatters.Add( new JsonOutputFormatter(new JsonSerializerSettings(), ArrayPool<char>.Shared))); var connectionStringMSurveyV2 = Configuration.GetConnectionString("MSurveyV2Db"); services.AddScoped<MSurveyV2Db>(_ => new MSurveyV2Db(connectionStringMSurveyV2)); var connectionStringSir = Configuration.GetConnectionString("SirDb"); services.AddScoped<SirDb>(_ => new SirDb(connectionStringSir)); services.AddScoped<IPropertiesRepo, PropertiesRepo>(); services.AddScoped<ISirUoW, SirUoW>(); services.AddScoped<Services.IMailService, Services.MailService>(); }
EDIT - I change the logger rule to <logger name="*" minlevel="Trace" writeTo="db"/> but still it doesnβt do anything <logger name="*" minlevel="Trace" writeTo="db"/> . However, I searched c: \ temp \ internal-nlog.txt and it was not created. It looks like the nlog.config file is being ignored. But this is in my project next to the Startup.cs file.
EDIT2: - zero configuration can be solved by setting "Copy to output directory" to "always copy". From the comments below I now got it working.
c # asp.net-core nlog
arame3333
source share