using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XYLEM.Base
{
public static class LogMessageTool
{
///
/// Return Type Name as a string
///
///
///
///
static public string TypeName(this T obj)
{
Type t;
if (obj == null)
{
t = typeof(T);
}
else
{
t = obj.GetType();
}
return t.Name;
}
public static string ToMessageText(this Exception ex)
{
if (ex != null)
{
var message = "";
var innerMessage = "";
if (ex.InnerException != null)
{
innerMessage = ToMessageText(ex.InnerException);
}
if ((ex.Message != null) && !String.IsNullOrEmpty(ex.Message))
{
message = ex.Message;
}
if (!String.IsNullOrEmpty(innerMessage))
{
message += (!String.IsNullOrEmpty(message) ? Environment.NewLine : "") + innerMessage;
}
return message;
}
return "";
}
public static string ToFuncText(bool isError, string className, string functionName)
{
var message = (isError ? "Error in class" : "Class ") + className + " and func. " + functionName;
#if(DEBUG)
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff ") + message);
#endif
return message;
}
public static string ToInitText(bool isError, string className)
{
var message = (isError ? "Error in init of " : "Init of ") + className;
#if(DEBUG)
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff ") + message);
#endif
return message;
}
public static string ToInitText(bool isError, string className, string dataInfo)
{
return ToInitText(isError, className + " info = " + dataInfo);
}
public static string ToFuncErrorText(this Exception ex, string className, string functionName)
{
return ToFuncText(true, className, functionName + ((ex == null) ? "" : Environment.NewLine + "Message = " + ex.ToMessageText()));
}
public static string ToFuncErrorText(this Exception ex, string className, string functionName, string dataInfo)
{
return ToFuncText(true, className, functionName + Environment.NewLine + dataInfo + ((ex == null) ? "" : Environment.NewLine + "Message = " + ex.ToMessageText()));
}
public static string ToFuncErrorText(string className, string functionName, string dataInfo)
{
return ToFuncText(true, className, functionName + Environment.NewLine + dataInfo);
}
public static string ToFuncErrorText(string className, string functionName)
{
return ToFuncText(true, className, functionName);
}
public static string ToInitErrorText(this Exception ex, string className)
{
return ToInitText(true, className + ((ex == null) ? "" : Environment.NewLine + "Message = " + ex.ToMessageText()));
}
}
}