Dlaczego nie mogę użyć $ {basedir} nlog.config na moim serwerze produkcyjnym? Jeśli używam fileName="${basedir}/logs/${shortdate}.log"
, nlog nie zaloguje info wiadomość, ale jeśli zmienię coś jak fileName="C:/logs/${shortdate}.log"
będzie rejestrować Komunikat informacyjny
mój plik 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>
Kontroler:
public class HomeController : Controller
{
private static Logger logger = LogManager.GetCurrentClassLogger();
public ActionResult Index()
{
logger.Debug("Test NLog");
return View();
}
}
Czy konto (App Pool/Usługa sieciowa/niestandardowe), na którym działa aplikacja, ma uprawnienia do zapisu w folderze dzienników? Czy folder dzienników już istnieje? Czy to konto ma uprawnienia do utworzenia folderu w '$ {basedir}'? –
@BrendanGreen Jak sprawdzić uprawnienia do konta aplikacji/konta niestandardowego? Jeśli kliknę prawym przyciskiem myszy folder aplikacji i kliknę kartę Zabezpieczenia, istnieje tylko konto usługi sieciowej, a jego uprawnienie jest ustawione na Tylko do odczytu. – Willy
Jak działa aplikacja? Czy to za pośrednictwem IIS lub IIS Express, czy coś innego? Wszystko zależy od twojego środowiska programistycznego, które będziesz potrzebował podać więcej szczegółów. –