Golang Log do pliku

Golang Log do pliku
Logowanie jest jednym z najważniejszych narzędzi dla programisty. Pozwala monitorować aplikację pod kątem błędów, problemów z wydajnością, śledzeniem użytkowania i wiele więcej. Dlatego nauka tworzenia dzienników dla aplikacji jest bardzo korzystna.

Korzystając z tego przewodnika, wprowadzimy Cię do pakietu dziennika w standardowej bibliotece Go i użyjemy go do tworzenia niestandardowych dzienników.

Pakiet dziennika Golang

Biblioteka Go Standard jest ogromna, wierzcie, zawiera kolekcję narzędzi, narzędzi i pakietów dla prawie najważniejszych aspektów programisty.

Jednym z takich pakietów jest pakiet dziennika. Jest wyposażony we wszystko, czego potrzebujesz do wdrożenia funkcji rejestrowania programów Go. Obejmuje to różne poziomy rejestrowania, takie jak debugowanie, ostrzeżenie, błąd, informacje itp.

Najbardziej podstawową metodą w pakiecie dziennika jest metoda println. Podobnie jak metoda println z pakietu FMT, umożliwia utworzenie podstawowej komunikatu dziennika.

Przykładowy kod źródłowy jest jak pokazano poniżej:

Pakiet Main
importować „log”
func main ()
dziennik.Println („Cześć, tam!")

Jeśli uruchomimy powyższy kod, powinniśmy zobaczyć i wyjść jak pokazano:

2022/01/27 21:29:35 Witam, tam!

Zwróć uwagę na coś innego w wiadomości wydrukowanej na konsoli?

Metoda println z pakietu dziennika zawiera znacznik czasu, kiedy utworzono komunikat dziennika. Jeśli spożywasz dzienniki dla aplikacji rejestrowania, posiadanie znacznika czasu jest niezwykle korzystne dla filtrowania dzienników.

Należy pamiętać, że pakiet dziennika wydrukuje wiadomość do strumienia Stderr. Możesz również skonfigurować go do pisania do pliku, ponieważ omówimy w następnej sekcji.

Golang Log do pliku

Aby zalogować się do pliku, możesz użyć pakietu systemu operacyjnego, aby utworzyć plik dziennika, jeśli nie istnieje lub otwiera się i zapisz do istniejącego pliku. To ustawienie wyjściowe pakietu dziennika na określony plik wyjściowy.

Należy pamiętać, że pakiet dziennika obsługuje również inne miejsce docelowe, które obsługuje IO.Interfejs pisarza.

Przykładowy kod do zalogowania się do pliku jest jak pokazano na fragmencie poniżej:

Pakiet Main
import (
"dziennik"
„OS”
"czas"
)
func main ()
// otwórz plik i utwórz, jeśli nieistnieje
Plik, err: = OS.OpenFile ("Custom.log ", OS.O_APPEND | OS.O_Create | OS.O_WRONLY, 0644)
Jeśli err != zero
dziennik.Fatalny (err)

plik odroczenia.Zamknąć()
logger: = log.Nowy (plik, „dziennik niestandardowy”, dziennik.LSTDFLAGS)
logger.Println („Jestem nową komunikatem dziennika”)
czas.Sen (5 * czas.Drugi)
logger.Println („nowy dziennik, 5 sekund później”)

W powyższym przykładzie zaczynamy od otwarcia pliku do użycia jako wyjścia dziennika. Uwzględniamy flagi do zapisu do pliku i utworzenia go, jeśli nie istnieje.

Następnie sprawdzamy, czy występuje błąd podczas czytania/zapisywania do pliku. Jeśli wystąpi błąd, rejestrujemy błąd za pomocą dziennika.Fatalny.

Dziennik.Metoda fatal () jest podobna do metody print (), ale zawiera wywołanie systemu operacyjnego.Exit () z kodem stanu 1.

Następnym krokiem jest zamknięcie pliku. Ustawiamy funkcję SET Close na odroczenie, umożliwiając wykonywanie funkcji po wykonaniu funkcji głównej.

Następnym krokiem jest utworzenie nowego rejestratora, który zapisuje do pliku. Dziennik.Funkcja logera przyjmuje 3 główne argumenty:

  1. W tym przypadku wyjście dziennika to plik dziennika.
  2. Prefiks, który jest dołączony do początku każdego wpisu w pliku dziennika.
  3. Wreszcie, jest stała dziennika po prefiksie tekstu dla każdego wiersza dziennika.

Poniżej obsługiwane są stałe dziennika:

  1. Ldate
  2. LTime
  3. Lmicrosekunds
  4. Llongfile
  5. Lshortfile
  6. Lutc
  7. Lmsgprefix
  8. LSTDFLAGS

Rozważ poniższy zasób dokumentacji, aby dowiedzieć się więcej.

https: // pkg.Iść.dev/log#pkg-constants

W naszym powyższym przykładzie ustawiamy również czas snu na 5 sekund. Jeśli uruchomimy powyższy kod, powinniśmy uzyskać wyjście, jak pokazano poniżej:

$ CAT Custom.dziennik
Niestandardowy log2022/01/27 21:40:25 Jestem nową komunikatem dziennika
Niestandardowe log2022/01/27 21:40:30 Nowy dziennik, 5 sekund później

Znacznik czasu między pierwszym wpisem dziennika a drugim wpisem dziennika jest od siebie o 5 sekund. Wynika to z funkcji snu w powyższym kodzie.

Wniosek

Ten post bada koncepcję tworzenia i budowania rejestratorów dla Twojej aplikacji w Go. Korzystając z tego przewodnika, możesz zacząć korzystać z pakietu Go Log i utworzyć zaawansowane mechanizmy rejestrowania swoich aplikacji.

Dziękuje za przeczytanie!