How to export android Unity error and debug logs to file?

Viewed 4960

I am attempting to develop an app for the Samsung Gear VR (with the Samsung Galaxy S8) and as it requires me to pull out the USB cable in order to plug the phone onto the Gear VR device, this does not allow me to do USB debugging.

How do I go about exporting error and debug messages into a file I can read in order to figure out what's going wrong?

So far, research has shown that android Unity player does not save to a log file while the other platforms do, and adb is the way to go for USB debugging... Only I can't do that for Gear.

2 Answers

If you want to understand better the code please see my tutorial: android files tutorial

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.UI;


public class UtilsMath : MonoBehaviour
{
    private string gpsFilePath;
    private void Start()
    {
      gpsFilePath = Application.persistentDataPath + "/logFilesGPSUnity.txt";

      //if you want to empty the file every time the app starts,
      // only delete and create a new one.

      // if gps file exists
      if (File.Exists(gpsFilePath))
      {
        //delete file
        try
        {
            File.Delete(gpsFilePath);
            Debug.Log("[Utils Script]: GPS File Log Deleted Successfully!");
        }
        catch (System.Exception e)
        {
            Debug.LogError("[Utils Script]: Cannot delete GPS File Log - Exception: " + e);
        }
      }
  }


/// <summary>
/// <para> Writes the string message into the logFilesGPSUnity.txt in the internal storage\android\data\com.armis.arimarn\files\</para>
/// You need to write a '\n' in the end or beginning of each message, otherwise, the message will be printed in a row.
/// </summary>
/// <param name="message">String to print in the file</param>
  public void WriteToFile(string message)
  {
    try
    {
        //create the stream writer to the specific file
        StreamWriter fileWriter = new StreamWriter(gpsFilePath, true);

        //write the string into the file
        fileWriter.Write(message);

        // close the Stream Writer
        fileWriter.Close();
    }
    catch (System.Exception e)
    {
        Debug.LogError("[Utils Script]: Cannot write in the GPS File Log - Exception: " + e);
    }
  }
}
Related