Perché non riesco a utilizzare $ {basedir} nlog.config nel mio server di produzione? Se uso fileName="${basedir}/logs/${shortdate}.log"
, nlog non registra informazioni messaggio, ma se cambio a qualcosa di simile fileName="C:/logs/${shortdate}.log"
registrerà informazioni messaggio
mia nlog.config:
<?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">
<targets>
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="f" />
</rules>
</nlog>
Controller:
public class HomeController : Controller
{
private static Logger logger = LogManager.GetCurrentClassLogger();
public ActionResult Index()
{
logger.Debug("Test NLog");
return View();
}
}
L'account (Pool di app/Servizio di rete/personalizzato) in cui è in esecuzione l'applicazione è autorizzato a scrivere nella cartella dei registri? La cartella dei registri esiste già? Questo account ha il permesso di creare la cartella in '$ {basedir}'? –
@BrendanGreen Come controllare il permesso per il pool di app/account personalizzati? Se faccio clic con il pulsante destro del mouse sulla cartella dell'applicazione e faccio clic sulla scheda Protezione, esiste solo l'account Servizio di rete e la sua autorizzazione è impostata su Sola lettura – Willy
Bene, come si esegue l'applicazione? È tramite IIS o IIS Express o qualcos'altro? Tutto dipende dal tuo ambiente di sviluppo, sul quale dovrai fornire maggiori dettagli. –