101 lines
2.3 KiB
C#
101 lines
2.3 KiB
C#
using System;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace UnityEngine.TestTools.Logging
|
|
{
|
|
[Serializable]
|
|
internal class LogMatch
|
|
{
|
|
[SerializeField]
|
|
private bool m_UseRegex;
|
|
[SerializeField]
|
|
private string m_Message;
|
|
[SerializeField]
|
|
private string m_MessageRegex;
|
|
[SerializeField]
|
|
private string m_LogType;
|
|
|
|
public string Message
|
|
{
|
|
get { return m_Message; }
|
|
set
|
|
{
|
|
m_Message = value;
|
|
m_UseRegex = false;
|
|
}
|
|
}
|
|
|
|
public Regex MessageRegex
|
|
{
|
|
get
|
|
{
|
|
if (!m_UseRegex)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return new Regex(m_MessageRegex);
|
|
}
|
|
set
|
|
{
|
|
if (value != null)
|
|
{
|
|
m_MessageRegex = value.ToString();
|
|
m_UseRegex = true;
|
|
}
|
|
else
|
|
{
|
|
m_MessageRegex = null;
|
|
m_UseRegex = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public LogType? LogType
|
|
{
|
|
get
|
|
{
|
|
if (!string.IsNullOrEmpty(m_LogType))
|
|
{
|
|
return Enum.Parse(typeof(LogType), m_LogType) as LogType ? ;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
set
|
|
{
|
|
if (value != null)
|
|
{
|
|
m_LogType = value.Value.ToString();
|
|
}
|
|
else
|
|
{
|
|
m_LogType = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool Matches(LogEvent log)
|
|
{
|
|
if (LogType != null && LogType != log.LogType)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (m_UseRegex)
|
|
{
|
|
return MessageRegex.IsMatch(log.Message);
|
|
}
|
|
|
|
return Message.Equals(log.Message);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
if (m_UseRegex)
|
|
return string.Format("[{0}] Regex: {1}", LogType, MessageRegex);
|
|
return string.Format("[{0}] {1}", LogType, Message);
|
|
}
|
|
}
|
|
}
|