74 lines
2.0 KiB
C#
74 lines
2.0 KiB
C#
using System;
|
|
using System.IO;
|
|
using UnityEngine;
|
|
|
|
public class Logger
|
|
{
|
|
public static bool Enabled = true;
|
|
private static Logger m_instance = null;
|
|
private static string ApplicationDirectory
|
|
{
|
|
get
|
|
{
|
|
// Android (and iOS): dataPath is inside the package/APK and is not writable.
|
|
if (Application.platform == RuntimePlatform.Android ||
|
|
Application.platform == RuntimePlatform.IPhonePlayer)
|
|
{
|
|
return Application.persistentDataPath;
|
|
}
|
|
|
|
string path = Application.dataPath;
|
|
if (Application.platform == RuntimePlatform.OSXPlayer)
|
|
{
|
|
path = Path.Combine(path, "..", "..");
|
|
}
|
|
else if (Application.platform == RuntimePlatform.WindowsPlayer)
|
|
{
|
|
path = Path.Combine(path, "..");
|
|
}
|
|
return path;
|
|
}
|
|
}
|
|
public string LogFilePath {get; private set;}
|
|
public static Logger instance
|
|
{
|
|
get
|
|
{
|
|
if (m_instance == null)
|
|
{
|
|
m_instance = new Logger();
|
|
}
|
|
|
|
return m_instance;
|
|
}
|
|
}
|
|
|
|
public Logger()
|
|
{
|
|
if(!Enabled){return;}
|
|
Debug.Log("Starting logger @ " + ApplicationDirectory);
|
|
if(LogFilePath == null){
|
|
LogFilePath = Path.Combine(ApplicationDirectory, "Log.txt");
|
|
}
|
|
File.WriteAllText(LogFilePath, "Logger initiated at " + DateTime.Now + "\n\n");
|
|
}
|
|
|
|
public void log(string message){
|
|
if(!Enabled){return;}
|
|
|
|
File.AppendAllText(LogFilePath,$"[{DateTime.Now}] {message}\n");
|
|
Debug.Log(message);
|
|
}
|
|
|
|
public static void Log(string message){
|
|
instance.log(message);
|
|
}
|
|
|
|
public static void SetFileName(string fileName){
|
|
instance.LogFilePath = Path.Combine(ApplicationDirectory, fileName + ".txt");
|
|
}
|
|
|
|
public static void SetFilePath(string path){
|
|
instance.LogFilePath= path;
|
|
}
|
|
} |