2 using System.Diagnostics;
3 using System.Threading.Tasks;
6 namespace CPE.Utilities
9 /// Wrapper for Log4Net - uses SerialKey and Calling Class and Method.
10 /// NOTE: Uses Asynchronous logging
12 public static class LogWrapper
14 //Methods in Descending order of importance
15 public static void Debug(string message, params object[] parameters)
18 var logger = FormatMessage(message, parameters, out format);
19 Task.Run(() => logger.DebugFormat(format));
21 public static void Info(string message, params object[] parameters)
24 var logger = FormatMessage(message, parameters, out format);
25 Task.Run(() => logger.InfoFormat(format));
27 public static void Warn(string message, params object[] parameters)
30 var logger = FormatMessage(message, parameters, out format);
31 //logger.WarnFormat(format);
32 Task.Run(() => logger.WarnFormat(format));
34 public static void Error(string message, params object[] parameters)
37 var logger = FormatMessage(message, parameters, out format);
38 Task.Run(() => logger.ErrorFormat(format));
40 public static void Fatal(string message, params object[] parameters)
43 var logger = FormatMessage(message, parameters, out format);
44 Task.Run(() => logger.FatalFormat(format));
47 private static ILog FormatMessage(string message, object[] parameters, out string format)
49 var frame = new StackFrame(2);
50 var method = frame.GetMethod();
54 className = method.DeclaringType.ToString();
57 var methodName = method.Name;
58 var logger = LogManager.GetLogger(className); //should be cached if exists already
62 parsedMsg = string.Format(message, parameters);
66 //developer sent invalid string
67 parsedMsg = "_String parse error.";
69 System.IO.File.AppendAllText(@"D:\Log_files\CpeApi_SimpleLogger.log", "[LogWrapper][FormatMessage] " + DateTime.UtcNow.ToString("yyyyMMdd_HHmmss") + "] " + methodName + parsedMsg + Environment.NewLine);
70 format = string.Format("[{0}] ; {1}", methodName, parsedMsg);