private static void WriteLog(string logType, string msg) { StackFrame callStack = new StackFrame(2, true); FirePHPLog log = new FirePHPLog(); log.logType = logType; // log.header = new { Type = logType, File = callStack.GetFileName(), Line = callStack.GetFileLineNumber() }; log.header = new { Type = logType, File = "", Line = "" }; log.msg = msg; DumpLog(log); }
public static void Table(string label, string[][] table) { JavaScriptSerializer serializer = new JavaScriptSerializer(); StackFrame callStack = new StackFrame(1, true); FirePHPLog log = new FirePHPLog(); log.logType = "TABLE"; //log.header = new { Type = "TABLE", Label = label, File = callStack.GetFileName(), Line = callStack.GetFileLineNumber() }; log.header = new { Type = "TABLE", Label = label, File = "", Line = "" }; log.msg = table; DumpLog(log); }
public static void Exception(Exception exception) { JavaScriptSerializer serializer = new JavaScriptSerializer(); StackFrame callStack = new StackFrame(1, true); StackTrace stackTrace; FirePHPLog log = new FirePHPLog(); log.logType = "EXCEPTION"; log.header = new { Type = "EXCEPTION", File = exception.Source, Line = 1 }; int exceptionCount = 0; Exception currentException = exception; var traceList = new List <object>(); while (currentException.InnerException != null) { stackTrace = new StackTrace(currentException, true); currentException = exception.InnerException; exceptionCount++; var trace = new { file = currentException.Source, line = currentException.Source, function = currentException.Message, args = new string[0] }; traceList.Add(trace); } if (exceptionCount > 0) { var trace = new object[exceptionCount]; } stackTrace = new StackTrace(exception, true); log.msg = new { Class = "Exception", Message = exception.Message, File = stackTrace.GetFrame(0).GetFileName(), Line = stackTrace.GetFrame(0).GetFileLineNumber(), Type = "throw", Trace = traceList.ToArray() }; DumpLog(log); }
public static void DumpLog(FirePHPLog log) { if (!IsEnabled) { return; } HttpContext context = HttpContext.Current; Dictionary <string, string> ret = new Dictionary <string, string>(); JavaScriptSerializer serializer = new JavaScriptSerializer(); InitHeader(context.Response); string json = String.Format("[{0}, {1}]", serializer.Serialize(log.header), serializer.Serialize(log.msg)); context.Response.AppendHeader(String.Format("X-Wf-1-1-1-{0}", (logCounter + 1)), String.Format("{0}|{1}|", json.Length, json)); if (logCounter++ > 9999) { logCounter = 0; } }