public void WriteToLogLevel(string message, LogLevelEnum level) { int depth = 1; StackFrame stackframe = new StackFrame(depth); //24Nov2015 While working with SQL found that stackframe is null. Reason unknown. But this caused app crash //so here is some code that may stop that crash even if the stackframe is null string classname = " -CLASS :Unknonwn-Class"; string methodname = " -METHOD : Unknown-Method"; if (stackframe.GetMethod() != null) { classname = " -CLASS :" + stackframe.GetMethod().DeclaringType.FullName; methodname = " -METHOD :" + stackframe.GetMethod().Name + "()"; } //StackTrace stacktrace = new StackTrace(depth); //string _line=string.Empty; //string _te = stacktrace.ToString(); //int _lis = _te.IndexOf("line"); //if(_lis>0) //_line = _te.Substring(_lis, 7);//stackframe.GetFileLineNumber() string msgcname = message + classname + methodname; // + //" -LINE :" + _line; if (loglevel.ToString() == (level.ToString()) || loglevel.ToString().Equals("All")) { switch (level) // writes 'level' category of log { case LogLevelEnum.Debug: Debug(msgcname); break; case LogLevelEnum.Info: Info(msgcname); break; case LogLevelEnum.Warn: Warn(msgcname); break; case LogLevelEnum.Error: Error(msgcname); break; case LogLevelEnum.Fatal: Fatal(msgcname); break; default: Error(msgcname); break; } } //else //if invalid log level in config, still Error level logging will be done // Error("Invalid Log level set in Config file. Valid options(case sensitive) are Debug, Info, Warn, Error, Fatal, All\n"+msgcname); }
public void WriteToLogLevel(string message, LogLevelEnum level) { int depth = 1; StackFrame stackframe = new StackFrame(depth); //StackTrace stacktrace = new StackTrace(depth); //string _line=string.Empty; //string _te = stacktrace.ToString(); //int _lis = _te.IndexOf("line"); //if(_lis>0) //_line = _te.Substring(_lis, 7);//stackframe.GetFileLineNumber() string msgcname = message + " -CLASS :" + stackframe.GetMethod().DeclaringType.FullName + " -METHOD :" + stackframe.GetMethod().Name + "()";// + //" -LINE :" + _line; if (loglevel.ToString() == (level.ToString()) || loglevel.ToString().Equals("All")) { switch (level) // writes 'level' category of log { case LogLevelEnum.Debug: Debug(msgcname); break; case LogLevelEnum.Info: Info(msgcname); break; case LogLevelEnum.Warn: Warn(msgcname); break; case LogLevelEnum.Error: Error(msgcname); break; case LogLevelEnum.Fatal: Fatal(msgcname); break; default: Error(msgcname); break; } } //else //if invalid log level in config, still Error level logging will be done // Error("Invalid Log level set in Config file. Valid options(case sensitive) are Debug, Info, Warn, Error, Fatal, All\n"+msgcname); }