Je suis novice dans l'utilisation de NLog avec ASP.NET Core, j'ai donc suivi le guide ici : https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-(projet.json)
J'ai créé les éléments suivants nlog.config
à la racine du répertoire du projet :
<?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>
<!-- define various log targets -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="${basedir}\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" />
<target xsi:type="File" name="ownFile-web" fileName="${basedir}\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}| ${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
<target xsi:type="Null" name="blackhole" />
</targets>
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
Dans un contrôleur, j'appelle une ligne comme celle-ci :
_logger.LogInformation("Entered CustomerRange method");
qui renvoie ce qui suit dans la fenêtre de sortie de Visual Studio :
CustomerMgmtAPI.Controllers.CustomerController:Information: Entered CustomerRange method
Cependant, les fichiers journaux réels ne sont jamais créés par NLog. Je me demandais si quelqu'un pouvait indiquer l'erreur dans la configuration de NLog ici, car j'ai examiné la documentation de NLog pour le projet ASP.NET Core et je ne peux pas trouver l'erreur moi-même.