using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
namespace UniRx.Diagnostics
{
public struct LogEntry
{
// requires
public string LoggerName { get; private set; }
public LogType LogType { get; private set; }
public string Message { get; private set; }
public DateTime Timestamp { get; private set; }
// options
/// [Optional]
public UnityEngine.Object Context { get; private set; }
/// [Optional]
public Exception Exception { get; private set; }
/// [Optional]
public string StackTrace { get; private set; }
/// [Optional]
public object State { get; private set; }
public LogEntry(string loggerName, LogType logType, DateTime timestamp, string message, UnityEngine.Object context = null, Exception exception = null, string stackTrace = null, object state = null)
: this()
{
this.LoggerName = loggerName;
this.LogType = logType;
this.Timestamp = timestamp;
this.Message = message;
this.Context = context;
this.Exception = exception;
this.StackTrace = stackTrace;
this.State = state;
}
public override string ToString()
{
var plusEx = (Exception != null) ? (Environment.NewLine + Exception.ToString()) : "";
return "[" + Timestamp.ToString() + "]"
+ "[" + LoggerName + "]"
+ "[" + LogType.ToString() + "]"
+ Message
+ plusEx;
}
}
}