Golang: Führt das Einloggen in die Datei mit log.Println den gleichzeitigen Zugriff durch

7

Ich habe Hunderte von Subroutinen, die mit log.Println ()
in die Protokolldatei schreiben Ich verwende log.Println, um in die Datei error.log zu schreiben.

%Vor%

Ist meine Vorgehensweise korrekt? Oder sollte ich Kanal verwenden, um sicherzustellen, dass sich nur ein Prozess zu einer Zeit in Datei anmeldet, oder wird es von Protokollpaket inhärent erledigt?

Passt das Protokollpaket auch zur Pufferung oder schreibt es direkt in die Datei?

    
Rahul Prasad 31.03.2014, 10:11
quelle

2 Antworten

14

Von log.go :

%Vor%

Da fast alle Paket log Ausgabefunktionen durch Output gehen, und es gibt einen Mutex in Output , kann man sicher sagen, dass sie nebenläufigkeitssicher sind.

    
LinearZoetrope 31.03.2014, 10:15
quelle
16

Ich kann wirklich empfehlen, die Dokumentation zu lesen:

  

Ein Logger stellt ein aktives Logging-Objekt dar, das Ausgangszeilen für einen io.Writer erzeugt. Jede Protokollierungsoperation führt einen einzelnen Aufruf der Write-Methode des Writers aus. Ein Logger kann gleichzeitig von mehreren Goroutines verwendet werden; Es garantiert die Serialisierung des Zugriffs auf den Writer.

Siehe Ссылка

    
Volker 31.03.2014 11:15
quelle

Tags und Links