Skip to content
Back to Guides
8 min read

How to Read Minecraft Server Logs

Find out what your server did, why it crashed and what to fix — straight from the log files.

By Lodgichost Team · Last updated: August 19, 2026

The server log records everything on a Minecraft server: startups, shutdowns, player joins and leaves, every command typed into the console, plugin warnings, and the stack traces that appear moments before a crash. It is also the first place support teams ask you to look. Reading it is not hard — every line carries a timestamp and a severity tag, and most problems announce themselves in the final lines before a crash report. This guide explains where the logs live, what the common lines mean, how to spot a plugin bug inside a stack trace, and how to combine logs with crash reports to diagnose a server that keeps dying.

Where the Logs Live

Every running server writes output to the console in the panel and to the disk. The current boot writes to logs/latest.log, replaced at every start, while completed boots are rotated into compressed files named by date, such as logs/2026-08-18-1.log.gz. Separate from logs, the crash-reports folder holds crash-<date>-<time>-server.txt files capturing the JVM state when the server dies. A crash needs the crash report; day-to-day questions live in the regular logs.

  • logs/latest.log — everything from the current boot.
  • logs/<date>.log.gz — compressed logs from earlier boots.
  • crash-reports/crash-<date>-<time>-server.txt — written only on a crash.
  • Console output in the panel mirrors latest.log in real time.

Reading the First Lines

The first lines of latest.log tell you what is running: the Java version and arguments, the server software banner, and a line like Starting minecraft server version 1.21.4. Each plugin then prints its load lines in order while the world is prepared. Scanning this confirms your version and load order before you look at anything else.

[15:02:10] [Server thread/INFO]: Starting minecraft server version 1.21.4
[15:02:11] [Server thread/INFO]: Loading properties
[15:02:12] [Server thread/INFO]: Default game type: SURVIVAL
[15:02:13] [Server thread/INFO]: [PermissionsEx] Loading PermissionsEx v2.0.5
[15:02:13] [Server thread/INFO]: [WorldGuard] Loading WorldGuard v7.0.12
[15:02:14] [Server thread/INFO]: Preparing level "world"
[15:02:45] [Server thread/INFO]: Done (32.873s)! For help, type "help"

Severity Levels: INFO, WARN and ERROR

Every line carries a severity tag. INFO is normal activity — joins, saves, commands. WARN means something is off but the server continued, such as a deprecated config or a failed event hook. ERROR means an operation failed, and a multi-line stack trace after it is where you find the cause. Traces read bottom-up: the line at com.example.someplugin.YourPlugin.method(YourPlugin.java:45) names the plugin, while frames that mix plugin paths with org.bukkit calls usually mean a plugin bug. Player lines appear in two flavours — login attempts tagged [User Authenticator #<n>] show the UUID, while the join prints from the Server thread. Commands such as /plugins are logged with the player name and full text.

The Done Line and Health Checks

A successful start ends with a line like Done (34.124s)! For help, type "help". The number is boot time in seconds, and a long boot usually means chunk pre-generation, a large world or a plugin stalling startup. If players complain of lag, first check whether the server reached Done — a server stuck mid-boot accepts connections but hangs. On Paper, Timings and /tps output appear here when you profile. The /plugins response is logged too, listing every plugin with its version.

[16:00:12] [Server thread/INFO]: Done (34.124s)! For help, type "help"
[16:01:02] [User Authenticator #2/INFO]: UUID of player Player1 is 1a2b3c4d-5e6f-7890-abcd-1234567890ef
[16:01:02] [Server thread/INFO]: Player1 joined the game
[16:05:30] [Server thread/INFO]: [Admin] issued server command: /plugins
[16:05:30] [Server thread/INFO]: Server plugins: Essentials v2.20.1, WorldGuard v7.0.12, WorldEdit v7.3.8

Using Logs to Diagnose a Crash

When a server crashes, two files matter: the tail of latest.log and the newest file in crash-reports/. The crash report holds the thread dump, error header and memory state, but the ERROR lines at the end of latest.log usually show the actual trigger — the plugin, the event, the code that ran last. Open both, find the last ERROR block before the shutdown, then match the plugin name in the stack trace against the crash report's affected mods list — the pairing tells you whether to fix the plugin or the environment.

  • Find the last ERROR block in latest.log before the shutdown lines.
  • Read the newest crash-reports/crash-*.txt Description and affected mods sections.
  • Match package paths in the stack trace against your installed plugins.
  • Check whether the crash repeats after a plugin update or a RAM increase — that tells you which fix worked.

Troubleshooting

  • latest.log is empty: the server never finished starting, or the file was recreated mid-boot. Wait a few seconds and reload, then check the crash-reports folder.
  • No crash report but the server is gone: the process was killed externally — an OOM kill or manual stop — not a code failure. Look for a Killed line or check panel graphs.
  • Stack trace mentions a plugin I don't recognise: plugins chain calls into each other. Trace the 'at <package>' line to the failing jar, then check its dependencies.
  • Log lines stop mid-boot: the server hung during startup, usually on chunk loading or a plugin. Compare the last logged step across boots; a consistent stopping point reveals the bottleneck.

FAQ

Where can I download old logs?

From the logs folder via SFTP. Older boots are gzipped by date and boot number, for example logs/2026-08-18-1.log.gz; open them in any editor or with 7-Zip.

What does 'Done (12.3s)!' mean?

It means the server finished starting in 12.3 seconds and is accepting players. A very high number usually indicates chunk pre-generation, a large world or slow plugin startup.

How do I find out which plugin crashed?

Look at the last ERROR lines in latest.log before the crash report. The line containing 'at <package>.<Class>.method' names the plugin; cross-check with the affected mods list.

Are commands like /plugins logged?

Yes. Every console and in-game command appears in the log with the issuing player's name and the full command text, so /plugins, /op and ban commands all leave a record.

Why do log lines mention a UUID?

The server identifies accounts by UUID, not display name. Join lines print both, so you can recognise players who changed names.

Related Guides

This site uses cookies to improve your experience. Learn more.