using System;
using System.Text.RegularExpressions;
namespace LogLibrary.Log
{
public unsafe class Log
{
private string m_Name;
private const string m_MessageTemplate = "{0}-{1}: {2}";
private const string m_Debug = "DEBUG";
private const string m_Error = "ERROR";
private const string m_Fatal = "FATAL";
private const string m_Info = "INFO";
private const string m_Warn = "WARN";
///
/// Initializes a new instance of the class.
///
/// The name.
public Log(string name)
{
m_Name = name;
}
public Log()
{
m_Name = "NaN";
}
///
/// Gets a value indicating whether this instance is debug enabled.
///
///
/// true if this instance is debug enabled; otherwise, false.
///
public bool IsDebugEnabled
{
get { return true; }
}
///
/// Gets a value indicating whether this instance is error enabled.
///
///
/// true if this instance is error enabled; otherwise, false.
///
public bool IsErrorEnabled
{
get { return true; }
}
///
/// Gets a value indicating whether this instance is fatal enabled.
///
///
/// true if this instance is fatal enabled; otherwise, false.
///
public bool IsFatalEnabled
{
get { return true; }
}
///
/// Gets a value indicating whether this instance is info enabled.
///
///
/// true if this instance is info enabled; otherwise, false.
///
public bool IsInfoEnabled
{
get { return true; }
}
///
/// Gets a value indicating whether this instance is warn enabled.
///
///
/// true if this instance is warn enabled; otherwise, false.
///
public bool IsWarnEnabled
{
get { return true; }
}
public string GetDataTimeLog(string log)
{
return string.Format("[{0}] >> {1}", DateTime.Now.ToString("yy-MM-dd HH:mm:ss"), log);
}
///
/// Logs the debug message.
///
///
/// The message.
public void Debug(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The message.
/// The exception.
public void Debug(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The format.
/// The arg0.
public void DebugFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The format.
/// The args.
public void DebugFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, string.Format(format, args));
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The provider.
/// The format.
/// The args.
public void DebugFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, string.Format(provider, format, args));
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The format.
/// The arg0.
/// The arg1.
public void DebugFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the debug message.
///
///
/// The format.
/// The arg0.
/// The arg1.
/// The arg2.
public void DebugFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
///
/// Logs the error message.
///
///
/// The message.
public void Error(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The message.
/// The exception.
public void Error(bool isWriteFile, object message, Exception exception)
{
//string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message );
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The format.
/// The arg0.
public void ErrorFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The format.
/// The args.
public void ErrorFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The provider.
/// The format.
/// The args.
public void ErrorFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The format.
/// The arg0.
/// The arg1.
public void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the error message.
///
///
/// The format.
/// The arg0.
/// The arg1.
/// The arg2.
public void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The message.
public void Fatal(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The message.
/// The exception.
public void Fatal(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The format.
/// The arg0.
public void FatalFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The format.
/// The args.
public void FatalFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The provider.
/// The format.
/// The args.
public void FatalFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The format.
/// The arg0.
/// The arg1.
public void FatalFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the fatal error message.
///
///
/// The format.
/// The arg0.
/// The arg1.
/// The arg2.
public void FatalFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
///
/// Logs the info message.
///
///
/// The message.
public void Info(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
///
/// Logs the info message.
///
///
/// The message.
/// The exception.
public void Info(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
///
/// Logs the info message.
///
///
/// The format.
/// The arg0.
public void InfoFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format("\n{0}\n{1}\n-----------------------------------------------------------\n\n", format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
///
/// Logs the info message.
///
///
/// The format.
/// The args.
//public void InfoFormat(bool isWriteFile, string format, params object[] args)
//{
// string log = GetDataTimeLog(string.Format(format, args));
// Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
// if (isWriteFile)
// {
// LogUtil.WriteLogFile(m_Name, m_Info, log);
// }
//}
///
/// Logs the info message.
///
///
/// The provider.
/// The format.
/// The args.
//public void InfoFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
//{
// string log = GetDataTimeLog(string.Format(provider, format, args));
// Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
// if (isWriteFile)
// {
// LogUtil.WriteLogFile(m_Name, m_Info, log);
// }
//}
///
/// Logs the info message.
///
///
/// The format.
/// The arg0.
/// The arg1.
//public void InfoFormat(bool isWriteFile, string format, object arg0, object arg1)
//{
// string log = GetDataTimeLog(string.Format(format, arg0, arg1));
// Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
// if (isWriteFile)
// {
// LogUtil.WriteLogFile(m_Name, m_Info, log);
// }
//}
///
/// Logs the info message.
///
///
/// The format.
/// The arg0.
/// The arg1.
/// The arg2.
public void InfoFormat(bool isWriteFile, object arg0, object arg1, object arg2)
{
string func(string str, int len)
{
var strSLen = Regex.Replace(str, @"[^\x00-\xff]", "aa").Length;
var strLen = str.Length;
return str.PadLeft(len - strSLen + strLen);
}
string log = GetDataTimeLog(string.Format("[{0}]\t[{1}]\t{2}", arg0?.ToString(), arg1?.ToString(), arg2));
//string log = GetDataTimeLog(string.Format("[{0}] [{1}] {2}", func(arg0?.ToString(), 13), func(arg1?.ToString(), 16), arg2));
//Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
///
/// Logs the warning message.
///
///
/// The message.
public void Warn(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The message.
/// The exception.
public void Warn(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The format.
/// The arg0.
public void WarnFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The format.
/// The args.
public void WarnFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The provider.
/// The format.
/// The args.
public void WarnFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The format.
/// The arg0.
/// The arg1.
public void WarnFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
///
/// Logs the warning message.
///
///
/// The format.
/// The arg0.
/// The arg1.
/// The arg2.
public void WarnFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
//public void Behavior(string logMsg, Level level)
//{
// lock (this)
// {
// m_Name = "行为";
// switch (level)
// {
// case Level.Debug:
// Debug(true, logMsg);
// break;
// case Level.Info:
// Info(true, logMsg);
// break;
// case Level.Warning:
// Warn(true, logMsg);
// break;
// case Level.Error:
// Error(true, logMsg);
// break;
// default:
// break;
// }
// }
//}
//public void Interface(string logMsg, Level level)
//{
// lock (this)
// {
// m_Name = "接口";
// switch (level)
// {
// case Level.Debug:
// Debug(true, logMsg);
// break;
// case Level.Info:
// Info(true, logMsg);
// break;
// case Level.Warning:
// Warn(true, logMsg);
// break;
// case Level.Error:
// Error(true, logMsg);
// break;
// default:
// break;
// }
// }
//}
//public void Hardware(string logMsg, Level level)
//{
// lock (this)
// {
// m_Name = "硬件";
// switch (level)
// {
// case Level.Debug:
// Debug(true, logMsg);
// break;
// case Level.Info:
// Info(true, logMsg);
// break;
// case Level.Warning:
// Warn(true, logMsg);
// break;
// case Level.Error:
// Error(true, logMsg);
// break;
// default:
// break;
// }
// }
//}
}
}