2020-11-30 08:12:07 +00:00

73 lines
2.2 KiB
C#

using System;
using UnityEngine;
using UnityEngine.Networking;
namespace Mirror.Cloud
{
public static class Logger
{
public static bool VerboseLogging = false;
static readonly ILogger logger = LogFactory.GetLogger("MirrorCloudServices");
public static void LogRequest(string page, string method, bool hasJson, string json)
{
if (hasJson)
{
logger.LogFormat(LogType.Log, "Request: {0} {1} {2}", method, page, json);
}
else
{
logger.LogFormat(LogType.Log, "Request: {0} {1}", method, page);
}
}
public static void LogResponse(UnityWebRequest statusRequest)
{
long code = statusRequest.responseCode;
LogType logType = statusRequest.IsOk()
? LogType.Log
: LogType.Error;
string format = "Response: {0} {1} {2} {3}";
if (logger.IsLogTypeAllowed(logType))
{
// we split path like this to make sure api key doesn't leak
Uri uri = new Uri(statusRequest.url);
string path = string.Join("", uri.Segments);
string msg = string.Format(format, statusRequest.method, code, path, statusRequest.downloadHandler.text);
logger.Log(logType, msg);
}
if (!string.IsNullOrEmpty(statusRequest.error))
{
string msg = string.Format("WEB REQUEST ERROR: {0}", statusRequest.error);
logger.Log(LogType.Error, msg);
}
}
internal static void Log(string msg)
{
if (logger.LogEnabled())
logger.Log(msg);
}
internal static void LogWarning(string msg)
{
if (logger.WarnEnabled())
logger.LogWarning(msg);
}
internal static void LogError(string msg)
{
if (logger.ErrorEnabled())
logger.LogError(msg);
}
internal static void Verbose(string msg)
{
if (VerboseLogging && logger.LogEnabled())
logger.Log(msg);
}
}
}