Guten Tag, Ich bin mit Problem konfrontiert. Ich versuche NLog, Konfigurationscode ist unterNLog kann keine Protokolldatei auf Festplatte schreiben
var config = new LoggingConfiguration();
var fileTarget = new FileTarget();
config.AddTarget("file", fileTarget);
fileTarget.FileName = @"D:\" + filename;
fileTarget.Layout = @"${date:format=HH\:mm\:ss} ${logger} ${message}";
var rule1 = new LoggingRule("*", LogLevel.Debug, fileTarget);
config.LoggingRules.Add(rule1);
LogManager.Configuration = config;
Logger logger = LogManager.GetLogger("Example");
logger.Debug("debug log message");
Code wurde aus einem Tutorial entnommen. Und nichts ist passiert. Die Protokolldatei wurde nicht auf Datenträger D erstellt. Sie wurde jedoch im Ausgabeverzeichnis des Projekts erstellt. Ich habe versucht @"C:\" + filename
. Ich war überrascht, aber Log-Datei war da.
Dann habe ich versucht, auf @"D:\SomeFolder\" + filename
zu loggen und Datei war auch da.
Also, kann mir jemand helfen zu verstehen, was mit @"D:\" + filename
falsch ist.
P.S. Visual Studio 2013 wird mit Administratorrechten ausgeführt. Außerdem habe ich versucht ${basedir}
. Alles war in Ordnung.
Haben Sie versucht zu suchen? In 99,999% der Fälle handelt es sich um ein Berechtigungsproblem, doch erwähnen Sie nichts über den Kontext (das ist eine Desktop-Anwendung oder eine Webanwendung) oder die Berechtigungen. Im Allgemeinen ist das Stammverzeichnis einer Festplatte mit ihren Berechtigungen ziemlich restriktiv. Siehe auch [Fehlerbehebung bei der Protokollierung · NLog/NLog-Wiki · GitHub] (https://github.com/NLog/NLog/wiki/Logging-troubleshooting), der erste Google-Treffer für "nlog not writing file". – CodeCaster
@CodeCaster, hallo. Ich versuche es zu suchen. Auch ich habe Berechtigungen überprüft. Vielleicht habe ich etwas verpasst. Ich werde es noch einmal überprüfen. Dies ist eine Desktop-Anwendung. CD C ist Systemdiskette, also wurde ich cunfused, dass D weniger Berechtigungen hat. – Max