Inngame / Guides

Unity Player.log location, and how to get logs from players

Player.log is where your Unity build writes every Debug.Log, warning and exception. Finding it on your own machine is easy. Getting it from a player who just hit a bug on their phone or Steam Deck is the hard part.

Published 2 November 2026 by the Inngame team. Paths are taken from Unity's manual; the capture code is plain Unity, no SDK needed.

Where Unity writes Player.log

From the Unity manual's page on log files (Unity 6.6, the current version on 2 November 2026). CompanyName and ProductName are the values from Player Settings.

PlatformPlayer log
Windows%USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log
macOS~/Library/Logs/CompanyName/ProductName/Player.log (also visible in Console.app)
Linux~/.config/unity3d/CompanyName/ProductName/Player.log
Windows Store (UWP)%USERPROFILE%\AppData\Local\Packages\<productname>\TempState\UnityPlayer.log
AndroidNo file: read it with adb logcat (filter on Unity)
iOSNo file you can ask for: the device console in Xcode (Devices and Simulators, or Console.app)
WebGLThe browser's JavaScript console

A few practical notes the table doesn't tell you:

Make the log worth reading

Before worrying about getting the file, check that it contains something useful in a release build:

Option 1: ask players to send the file

It works for PC players who are motivated: testers, your Discord regulars, people stuck on a progression bug. Write the path for each OS in your FAQ, ask for both Player.log and Player-prev.log, and give them a place to upload (a Discord channel, a form, an email address).

It falls apart everywhere else. Mobile players can't reach the file at all. Most players won't dig through hidden folders for a game they've already decided is broken, and by the time they reply the game has been relaunched twice and the run you needed is gone. You also get the log without the rest: which build, which device, what the player was doing.

Option 2: capture logs inside the game

The better pattern is to keep the last lines in memory and attach them when the player reports a problem. Unity gives you the hook: Application.logMessageReceivedThreaded is called for every log line, from any thread. A minimal ring buffer:

using System.Collections.Generic;
using UnityEngine;

public static class RecentLogs
{
    const int Max = 200;
    static readonly Queue<string> lines = new Queue<string>();
    static readonly object gate = new object();

    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
    static void Hook() => Application.logMessageReceivedThreaded += OnLog;

    static void OnLog(string msg, string stack, LogType type)
    {
        bool err = type == LogType.Error || type == LogType.Exception || type == LogType.Assert;
        string line = $"{System.DateTime.UtcNow:HH:mm:ss} [{type}] {msg}" + (err ? "\n" + stack : "");
        lock (gate)
        {
            lines.Enqueue(line);
            while (lines.Count > Max) lines.Dequeue();
        }
    }

    public static string Dump()
    {
        lock (gate) return string.Join("\n", lines);
    }
}

Then, from your bug report screen, send RecentLogs.Dump() together with Application.version, SystemInfo.deviceModel, SystemInfo.operatingSystem, SystemInfo.graphicsDeviceName and the active scene. Things to watch:

What Inngame attaches for you

Inngame's Unity SDK does the above inside the support chat, so a player's message is the bug report:

A phone game's support chat where the player attached a screenshot of a frozen boss fight. Next to it, the context attached to every message: iPhone 15, iOS 18.1, game version 1.4.1 build 212, scene Dungeon3, battery 34%, 58 fps, last 50 log lines and the screenshot, plus the shake to report option.
What arrives with a player's message from a mobile game.

The setup is in the Unity support chat guide, and the bug report tool page shows the reporting flow in more detail.

Start the 14-day trial

Questions

Where is the Unity Player.log on Windows?

In %USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log, where CompanyName and ProductName come from Player Settings. The AppData folder is hidden; paste the path into Win + R or the Explorer address bar.

Where is Player.log on macOS and Linux?

On macOS, ~/Library/Logs/CompanyName/ProductName/Player.log (Console.app shows it too). On Linux, ~/.config/unity3d/CompanyName/ProductName/Player.log.

How do I get Unity logs from Android and iOS players?

There's no file a player can send. Developers read Android logs with adb logcat and iOS logs in Xcode's device console. For players, capture recent log lines in the game with Application.logMessageReceivedThreaded and attach them to their bug report.

Does Debug.Log work in a release build?

Yes. Debug.Log output goes to Player.log in release builds too. Stack traces depend on the Stack Trace settings in Player Settings, and IL2CPP builds only show line numbers if you enable it in the IL2CPP stack trace setting.

How do I find the log path from code?

Application.consoleLogPath returns the path of the current player's log file.

Related: Support chat in a Unity game · In-game bug report tool · PC and Steam games · Context and logs in the docs