Jaki jest idiomatyczny sposób logowania do Go?Jak zaimplementować rejestrowanie idiomatyczne w bibliotece Go?
Odpowiedz
Utwórz plik, który deklaruje zmienną globalną rejestrator. Następnie użyj funkcji idiomatic init() Go, aby zainicjować zmienną podczas uruchamiania.
logger.go:
package xxx
import (
"log"
"os"
)
var logger *log.Logger
func init() {
logger = log.New(os.Stderr, "xxx: ", log.Ldate | log.Ltime | log.Lshortfile)
}
example.go:
func test() {
logger.Println("Logged")
}
Metoda ta oferuje korzyści, które można wykorzystać pojedynczą realizację rejestratora, który może być skonfigurowany z pojedynczym plik.
EDIT: ThomasKappler zwrócił uwagę, że jeśli używasz tylko jednego globalnego rejestratora, można użyć pakietu dziennika jest wbudowany rejestratora i skonfigurować go z SetFlags. Jedyna różnica polega na tym, że musisz wyraźniej i zaimportować pakiet dziennika.
Jeśli używasz tylko jednego globalnego programu rejestrującego, możesz pominąć tworzenie własnych i używać funkcji pakietu dziennika, takich jak log.Println itd. Możesz nadal skonfigurować go za pomocą log.SetFlags(). –
@ThomasKappler Dzięki, nie wiedziałem tego. Wolę używać tej metody, ponieważ mogę rozszerzyć program rejestrujący bez przerywania istniejącej funkcjonalności (nie muszę też wszędzie importować pakietu logów) – liamzebedee
- 1. Wyłącz rejestrowanie w bibliotece harmonogramu
- 2. Jak zaimplementować Pinch Zoom w bibliotece Picasso?
- 3. Jak zaimplementować rejestrowanie błędów w aplikacji Windows Phone?
- 4. Porównaj rejestrowanie bloku aplikacji w bibliotece Enterprise versus Log4net?
- 5. Czy to idiomatyczne Clojure?
- 6. Czy idiomatyczne niemającego interfejsów zwanych jak „* er”
- 7. W jaki sposób zaimplementować skalowalne macierze w Go
- 8. Idiomatyczne wyjątki dla wychodzących pętli w OCaml
- 9. Jak włączyć szczegółowe rejestrowanie w niezgałęzionym wiremenie
- 10. Rejestrowanie w Pythonie typeerror
- 11. Jak zaimplementować odbijanie w Vue2?
- 12. Jak zaimplementować suwak w wiązce
- 13. Jak zmienić tło wykresu w bibliotece MPAndroidChart?
- 14. Rejestrowanie błędów w pliku
- 15. Rejestrowanie globalne w języku Python
- 16. Automatyczne rejestrowanie wyjątków w Ruby
- 17. każda implementacja w bibliotece underscore.js
- 18. Jak wygenerować losowy Uint64 w Go?
- 19. Membership.CreateUser() w bibliotece klas
- 20. android: Jak mogę zaimplementować pierwszy raz samouczek, taki jak Go Launcher w mojej aplikacji?
- 21. Rejestrowanie w $ .each()
- 22. rejestrowanie httpModules w web.config
- 23. Jak zaimplementować przycisk w ViewPager?
- 24. Rejestrowanie NSNotifications
- 25. Jak zaimplementować Symbol.iterator?
- 26. Błędy filtrowania idiomatycznego w Go
- 27. Jak wyłączyć rejestrowanie debugowania południowego w django?
- 28. Jak wyłączyć rejestrowanie "NioEndPoint" w Spring Boot?
- 29. Jak włączyć rejestrowanie restkit w Swift
- 30. Jak wyłączyć rejestrowanie debugowania migracji w django?
Istnieje kilka bibliotek zewnętrznych, które zapewniają więcej pełnych implementacji funkcji. Na przykład w standardowej bibliotece przegapiłem wygodną opcję niestandardowego formatowania i poziomów logowania (debugowanie, informacje, ...) i kończę wdrażanie własnej biblioteki - [go-log] (https://github.com/scale -it/go-log). Spójrz na to. –