Lodehost logoLodehost

Wydajność i naprawy

Zrozum, co Twój serwer Minecraft zapisuje, gdy coś się psuje

Serwer Minecraft prowadzi pisemny zapis niemal wszystkiego, co robi, a gdy się crashuje albo zawiesza, zapisuje dlaczego. Te pliki wyglądają jak ściana tekstu, ale mają stały układ. Gdy wiesz, którą część czytać najpierw, raport crasha zwykle w minutę wskazuje mod albo plugin, który za tym stoi.

8 min czytania

Raport crasha z nagłówkiem, opisem i stack trace zaznaczonymi różnymi kolorami
Raport crasha ma stałą kolejność: co zawiodło, gdzie zawiodło i na jakim systemie działało.

Trzy miejsca, w których serwer zapisuje rzeczy

Konsola to tylko jedna kopia. Te same linijki trafiają do folderu logs, a crash dodaje własny raport.

GdzieCo zawieraGdzie to otworzyć
Zakładka „Konsola”Wyjście na żywo, najwyżej ostatnie 2000 linijek, dopóki strona jest otwartaZakładka „Konsola”
logs/latest.logKażda linijka bieżącego uruchomienia albo ostatniego, jeśli serwer jest wyłączonyZakładka „Pliki”, folder logs
logs/2026-09-13-1.log.gz i podobneWcześniejsze uruchomienia, jeden spakowany plik na uruchomienie albo na dzieńZakładka „Pliki”, potem „Pobierz”
logs/debug.logTylko Forge i NeoForge: dużo więcej szczegółów niż latest.logZakładka „Pliki”, folder logs
crash-reportsJeden plik tekstowy na każdy crash, który gra zdążyła zapisaćZakładka „Pliki”, folder crash-reports

latest.log i spakowane starsze logi

Każda linijka w latest.log zaczyna się tak samo: czas, wątek, który ją zapisał, i poziom, jak w [21:07:33] [Server thread/WARN]:. Najczęściej spotkasz INFO dla zwykłych zdarzeń, WARN dla czegoś dziwnego, co serwer przetrwał, i ERROR dla czegoś, co się nie udało. Linijki bez tego przedrostka należą do linijki nad nimi, zwykle jako część stack trace.

Gdy serwer startuje, poprzedni latest.log jest pakowany do pliku .log.gz nazwanego datą, z numerem na końcu, który rośnie, gdy jednego dnia jest ich kilka. Uruchomienie, które trwa po północy, też jest dzielone przy zmianie dnia.

  • Otwórz latest.log w przeglądarce. W zakładce „Pliki” wejdź do logs i kliknij „Edytuj” przy latest.log. Bardzo długi log otwiera się ucięty i nie da się go zapisać; do takich użyj „Pobierz”.
  • Czytaj spakowany log na swoim komputerze. Kliknij „Pobierz” przy pliku .log.gz i otwórz go dowolnym programem do archiwów; w środku jest zwykły log tekstowy.
  • Na serwerze z modami zajrzyj do debug.log. Logowanie samej vanilli zapisuje tylko latest.log. Forge i NeoForge dodają obok debug.log z linijkami debug, i to ten plik mają na myśli autorzy modów, gdy proszą o Twój debug log.
Folder logs w zakładce Pliki z latest.log i kilkoma datowanymi archiwami logów
latest.log to bieżące uruchomienie; datowane archiwa obok to uruchomienia wcześniejsze.

Przeszukuj zakładkę Konsola zamiast przewijać

Dla ostatnich kilku minut zakładka „Konsola” jest szybsza niż każdy plik:

  • „Szukaj w logach...” zostawia tylko linijki zawierające to, co wpiszesz, na przykład nazwę gracza, nazwę pluginu albo Exception.
  • Menu poziomu przełącza między „Wszystkie poziomy”, „Info”, „Ostrzeżenia” i „Błędy”. „Błędy” pokazuje linijki oznaczone ERROR, SEVERE albo FATAL.
  • „Pobierz wyjście konsoli”, przycisk ze strzałką pobierania, zapisuje każdą linijkę z okna jako plik tekstowy, bez kodów kolorów, nawet gdy wyszukiwanie jest aktywne.
  • „Wyczyść” opróżnia okno i nic więcej. Linijki zostają w latest.log.

Filtr Błędy ukrywa stack trace

Linijki pod błędem nie mają własnego poziomu, więc przy wybranym „Błędy” widzisz linijkę ERROR, ale żadnych szczegółów pod nią. Użyj „Błędy”, żeby znaleźć moment, potem wróć do „Wszystkie poziomy” i wyszukaj słowo z tej linijki, żeby przeczytać, co następuje.

Okno trzyma nie więcej niż 2000 linijek. Jeden długi crash ze zrzutem wątków może wypchnąć początek historii poza widok, i wtedy miejscem do czytania jest latest.log.

Zakładka Konsola z menu poziomu ustawionym na Błędy i wpisanym wyszukiwaniem
Filtruj po „Błędy”, żeby znaleźć moment, a potem znowu poszerz widok, żeby przeczytać linijki pod spodem.

Z czego składa się raport crasha

Raport crasha to plik tekstowy w crash-reports z datą i godziną w nazwie, na przykład crash-2026-09-14_21.07.33-server.txt. Za każdym razem składa się z tych samych bloków, w tej kolejności:

crash-reports/crash-2026-09-14_21.07.33-server.txt, skrócony

---- Minecraft Crash Report ----
// Who set us up the TNT?

Time: 2026-09-14 21:07:33
Description: <what the game was doing>

<exception type>: <message>
	at <the line where it broke>
Caused by: <an earlier exception>

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Server thread
Stacktrace:

-- System Details --
Details:
	Minecraft Version: 26.2
	Java Version: ...
CzęśćCo Ci mówi
Linijka po //Nic. To żart wybrany losowo.
Time:Kiedy to się stało; znajdź ten czas w logu, żeby zobaczyć, co do tego doprowadziło.
Description:Krótka etykieta zadania, które zawiodło.
Wyjątek i jego traceCo poszło nie tak i w którym kodzie. Tę część czytaj najpierw.
-- Head --Wątek, który się crashował, z powtórzonym trace.
Bloki z Details:Czym gra zajmowała się w tym momencie. Sekcja z położeniem bloku podaje współrzędne, więc znajdziesz maszynę albo moba, o którego chodzi.
-- System Details --Wersja Minecrafta, wersja Javy, system operacyjny, pamięć i flagi, z którymi uruchomiono Javę.

Crashe podczas startu mają własne typowe przyczyny, opisane w poradniku o serwerze, który nie startuje.

Idź po stack trace do moda albo pluginu

Stack trace czyta się od góry w dół. Pierwsza linijka podaje rodzaj wyjątku i jego komunikat. Każda linijka at pod nią to jeden krok w kodzie: najwyższa to miejsce, gdzie się zepsuło, a niższe to droga, którą serwer tam doszedł.

  • `Caused by:` zaczyna drugi trace: wyjątek, który wywołał ten powyżej. Może ich być kilka z rzędu, a ostatni Caused by: jest najbliżej prawdziwego problemu.
  • `... 12 more` znaczy, że pozostałe kroki są takie same jak w trace powyżej. Nic ważnego nie zostało ucięte.
  • Nazwa pakietu na początku każdej linijki at mówi, do kogo należy kod tego kroku. W ten sposób trace wskazuje mod albo plugin.
Linijka `at` zaczynająca się odNależy do
net.minecraftSamej gry
io.papermc.paper albo org.bukkitPapera i warstwy pluginów, na której jest zbudowany
net.neoforgedNeoForge
net.minecraftforgeForge
net.fabricmcFabric
Cokolwiek innegoZwykle pluginu albo moda, często pod adresem strony autora zapisanym od tyłu

Schodź po trace, aż dojdziesz do pierwszego pakietu, który nie jest grą, oprogramowaniem serwera ani Javą. Porównaj tę nazwę z plikami w folderze plugins albo mods; nazwa projektu często pojawia się w obu. Potem zaktualizuj ten plugin albo mod, sprawdź jego config albo przenieś go do zapasowego folderu i zobacz, czy crash wraca.

Nazwa w trace to trop, a nie werdykt

Plugin może pojawić się w trace, bo poprosił grę o coś, co potem zawiodło na uszkodzonych danych świata. Gdy ten sam crash powtarza się po usunięciu tego pluginu, poszukaj zamiast tego położenia w blokach Details:.

Schemat stack trace z dwiema sekcjami Caused by i zaznaczonym jednym pakietem pluginu
Idź do ostatniego Caused by, potem w dół do pierwszego pakietu, który nie jest grą ani serwerem.

Watchdog, który zatrzymuje zawieszony serwer

Serwer, który zawiesza się wewnątrz jednego ticku, nie może odpowiadać graczom ani komendom, więc gra trzyma osobny wątek watchdog, który pilnuje zegara. Gdy jeden tick trwa dłużej niż limit, watchdog rezygnuje z serwera i go zatrzymuje:

Konsola

A single server tick took <seconds> seconds (should be max <seconds>)
Considering it to be crashed, server will forcibly shutdown.
This crash report has been saved to: <path>

Raport, który zapisuje, ma opis Watching Server i zrzut wątków: trace każdego wątku w chwili zatrzymania. Patrz na trace Server thread, bo to ten się zaciął.

Ustawienie w zakładce Ustawienia

Na serwerach vanilla, Fabric, Forge i NeoForge limit to „Watchdog (ms)” w grupie „Wydajność” zakładki „Ustawienia”, zapisywany jako max-tick-time w server.properties. Domyślnie to 60000, jedna minuta, a pole przyjmuje wartości od 1000 do 600000.

Paper, Purpur i Spigot wyłączają tego watchdoga i uruchamiają własnego, więc tam pole nic nie zmienia. Ich limit to timeout-time pod settings w spigot.yml, liczony w sekundach, domyślnie 60.

Dłuższy limit ukrywa zawieszenie, a nie je leczy

Podniesienie limitu zamienia zatrzymanie w serwer, który dłużej wisi, zanim ruszy dalej. Najpierw dowiedz się, co robił zacięty wątek, a zawieszenia, które wracają co kilka minut, sprofiluj według poradnika o spark.

Zrzut wątków Papera, gdy serwer przestaje odpowiadać

Paper nie czeka całej minuty w ciszy. Gdy serwer przez 10 sekund nie skończy ticku, wypisuje zrzut wątków, i kolejny co 5 sekund, dopóki zawieszenie trwa:

Konsola, Paper i Purpur

--- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH  - <version> ---
The server has not responded for 10 seconds! Creating thread dump

Te wczesne zrzuty pojawiają się także wtedy, gdy serwer dochodzi do siebie, więc piętnastosekundowe zawieszenie zostawia jeden w latest.log bez żadnego crasha. Szukaj w logu not responded, żeby je znaleźć.

Gdy zawieszenie dojdzie do timeout-time, Paper zatrzymuje serwer z ostatnim, pełnym zrzutem:

Konsola, Paper i Purpur

The server has stopped responding! This is (probably) not a Paper bug.
Server thread dump (Look for plugins here before reporting to Paper!):
  • Pakiet pluginu blisko góry wątku serwera wskazuje ten plugin. Komunikat samego Papera wymienia zapytania do sieci i pracę z bazą danych jako typowych podejrzanych.
  • Zapis albo edycja świata blisko góry znaczy, że serwer dostał naraz dużo więcej pracy, niż może udźwignąć, na przykład ogromną operację WorldEdit. Dziel takie zadania na mniejsze części.
  • Te same linijki w kilku zrzutach z rzędu pokazują, gdzie serwer utknął, więc to miejsce jest pierwszym do sprawdzenia.

config/paper-global.yml

watchdog:
  early-warning-delay: 10000
  early-warning-every: 5000

Obie wartości są w milisekundach i rzadko trzeba je zmieniać.

Udostępnij log, nie udostępniając za dużo

Ktoś, kto Ci pomaga, potrzebuje całego pliku, a nie zrzutu ekranu z ostatnimi linijkami. Log zapisuje o Twoich graczach więcej, niż można się spodziewać, więc najpierw szybko go przejrzyj.

  1. Pobierz kopię

    Kliknij „Pobierz” przy pliku w zakładce „Pliki”. Przy kilku plikach zaznacz ich pola, naciśnij „Zip”, żeby spakować je do jednego archiwum, i pobierz je. Zmiany rób w kopii na swoim komputerze, nigdy w pliku na serwerze.

  2. Usuń adresy graczy

    Każde wejście zapisuje linijkę taką jak Kai[/<address>:<port>] logged in with entity id ..., z adresem IP gracza w nawiasach. Zastąp każdy adres czymś takim jak x.x.x.x.

  3. Sprawdź komendy wpisane przez graczy

    Paper i Spigot zapisują każdą komendę jako <playername> issued server command: <command>. Przejrzyj te linijki pod kątem czegoś prywatnego i przeszukaj plik pod kątem słów takich jak password i token.

  4. Resztę zostaw

    Zostaw wersje, szczegóły systemu i linijki wokół błędu; pomocnicy ich potrzebują.

Żeby adresy w ogóle nie były zapisywane, wyłącz „Log player IP addresses” w grupie „Zaawansowane” zakładki „Ustawienia”. Działa to dla linijek zapisanych od następnego startu; starsze pliki zachowują adresy, które już mają.

Napisane i sprawdzone przez zespół Lodehost, ostatnia weryfikacja 14 września 2026.

FAQ

Pytania o logi i raporty crashy

Gdzie są przechowywane logi serwera Minecraft?

W folderze logs serwera: latest.log dla bieżącego uruchomienia i datowane archiwa .log.gz dla wcześniejszych. Raporty crashy mają obok własny folder, crash-reports.

Dlaczego nie ma raportu crasha, gdy mój serwer się zatrzymał?

Raport powstaje tylko wtedy, gdy sama gra wyłapie awarię. Gdy proces Javy zostaje zakończony z zewnątrz, nic nie ma szansy go zapisać, więc przeczytaj ostatnie linijki latest.log.

Co znaczy Watching Server w raporcie crasha?

Watchdog zatrzymał serwer, bo jeden tick trwał dłużej niż limit. Trace wątku serwera w zrzucie wątków pokazuje, na czym utknął.

Czy mogę usunąć stare pliki logów?

Tak. Serwer nigdy nie czyta archiwów .log.gz ani starych raportów crashy, więc ich usunięcie kosztuje Cię tylko historię.

Czy publikowanie raportu crasha jest bezpieczne?

Raport crasha to głównie kroki kodu i szczegóły systemu, i zwykle można go udostępnić. Pełny log to co innego: przed publikacją usuń adresy IP graczy i sprawdź zapisane komendy.

Logi i raporty crashy o jedną zakładkę stąd.

Zakładka „Konsola” filtruje po poziomie i zapisuje swoje wyjście jako plik, a zakładka „Pliki” otwiera logi i raporty crashy w przeglądarce.

Zobacz funkcje panelu