Ich möchte globale Protokolldatei verwenden. Ich erklärte es als:Wie Protokoll beim Start zu entfernen, wenn es als global deklariert ist?
string logName = "ProcessingLog.txt";
FileLogger fLogger;
static this()
{
fLogger = new FileLogger(logName);
}
void main()
{
if (someCondition)
remove(logName);
}
Aber in main
auf einig bedingten würde Ich mag es neu erstellen (alte entfernen und neue erstellen), aber das Problem, dass ich nicht nennen Funktion removeOldLog();
da aktuelles Protokoll von gesperrt laufende App
Das Entfernen von Protokoll in main wird durch denselben Prozess blockiert. Ich habe versucht, fLogger = new FileLogger(logName);
in vor jeder Funktion, die log erzeugen, zu bewegen, aber als ich Laufzeitfehler während des Schreibens bekam. Es scheint also, dass FileLogger
global initialisiert werden sollte.
Was ist der richtige Weg?
Können Sie klären, was Sie mit "blockiert" meinen? Können Sie das aktuelle Protokoll nicht schließen? Wird es durch den gleichen Prozess blockiert, der es oder einen anderen Prozess entfernen möchte? – rcorre
Sie scheinen eine Art Sperrmechanismus für Ihre Multi-Thread-Anwendung zu fehlen .. –
Können Sie erklären, wie ich es beheben kann? –