I have a Console application and for logging its activities i copied the same Nlog.config file that I had on my web application. I also imported Nlog.Extended and Nlog.Web. I also checked Nlog.config properties (Build Action = Content, copy to output directory = copy Always) and set internalLogFile and internalLogLevel.
When
private static Logger logger = LogManager.GetCurrentClassLogger();
is called 'System.TypeInitializationException' is thwown and, after all
Scanning XXXXLayoutRenderer (all parameter in my config)
this compares on my internal log file
Info Found 105 configuration items
And nothing else
This is my NLog.config file
<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="true"
internalLogFile="c:\Temp\internal_log_file.txt"
internalLogLevel="Trace"
internalLogToConsole="true">
<variable name="brief" value="${longdate} | ${level} | ${message}"/>
<variable name="verbose" value="${longdate} | ${machinename} | ${processid} | ${processname} | ${level} | ${logger} | ${message}"/>
<variable name="logDirectory" value="${basedir}/Logs/${date:format=yyyyMM}"/>
<targets>
<!-- FILE target -->
<target name="file" xsi:type="File" layout="${brief}" fileName="${logDirectory}/${shortdate}.txt"/>
<!-- EMAIL target -->
<target name="email" xsi:type="Mail"
smtpServer="smtp.gmail.com"
smtpPort="587"
smtpAuthentication="Basic"
smtpUserName="[email protected]"
smtpPassword="password"
enableSsl="true"
from="[email protected]"
to="[email protected]"
layout="${verbose}"
/>
<!-- DATABASE target -->
<target name="database" xsi:type="Database">
<connectionStringName>NLogEntities</connectionStringName>
<commandText>
insert into dbo.Log (
Application, Logged, Level, Message,
Username,
ServerName, Port, Url, Https,
ServerAddress, RemoteAddress,
Logger, CallSite, Exception
) values (
@Application, @Logged, @Level, @Message,
@Username,
@ServerName, @Port, @Url, @Https,
@ServerAddress, @RemoteAddress,
@Logger, @Callsite, @Exception
);
</commandText>
<parameter name="@application" layout="${appsetting:key=AppName:default=Unknown}" />
<parameter name="@logged" layout="${date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@message" layout="${message}" />
<parameter name="@username" layout="${identity}" />
<parameter name="@serverName" layout="${aspnet-request:serverVariable=SERVER_NAME:default=Unknown}" />
<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="@logger" layout="${logger}" />
<parameter name="@callSite" layout="${callsite}" />
<parameter name="@exception" layout="${exception:tostring}" />
</target>
</targets>
<rules>
<!-- DATABASE rules -->
<logger name="*" minlevel="Error" writeTo="database" />
<!-- EMAIL rules -->
<logger name="*" minlevel="Error" writeTo="email" />
<!-- FILE rules -->
<logger name="*" minlevel="Trace" writeTo="file" />
</rules>
</nlog>
And this is the output internal log file
2016-01-22 12:47:43.0520 Debug ScanAssembly('NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c')
....
....
2016-01-22 12:47:43.2532 Trace Scanning LongDateLayoutRenderer 'Layout Renderer: ${longdate}'
2016-01-22 12:47:43.2532 Trace Scanning LiteralLayoutRenderer 'Layout Renderer: ${literal}'
2016-01-22 12:47:43.2532 Trace Scanning LevelLayoutRenderer 'Layout Renderer: ${level}'
2016-01-22 12:47:43.2532 Trace Scanning LiteralLayoutRenderer 'Layout Renderer: ${literal}'
2016-01-22 12:47:43.2532 Trace Scanning MessageLayoutRenderer 'Layout Renderer: ${message}'
2016-01-22 12:47:43.2532 Info Found 105 configuration items
Where is the problem?
Solution Found!!! I had to change this
<parameter name="@application" layout="${appsetting:key=AppName:default=Unknown}" />
with this
<parameter name="@application" layout="${appsetting:name=AppName:default=Unknown}" />
The key word has to be replaced with name word.
Solved.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With