2016-11-13 1 views
0

Я хочу поместить метод в Catch {}, который отправит ошибку в мой файл «.log». Мне нравится указывать адрес страницы и метод, в котором произошла ошибка. поэтому я хочу, чтобы вы мне помогли и рассказали мне, как я могу определить «strErrorPath» и поместить его как на мой ввод метода.найти путь места, где ошибка произошла на страницах C#

public static void SendErrorToPersonalErrorMessage(Exception ex,string strErrorPath) 
{ 
    string strErrorMEssage = string.Format("Error:{0} Time:{1:yyy/mm/dd - hh:mm:ss},Address:{2}", ex.Message, System.DateTime.Now, strErrorPath); 
    System.IO.StreamWriter oStreamWriter = null; 
    string strPersonalErrorMEssagePath = "~/App_Data/Log/PersonalErrorMessage.log"; 
    string strPersonalErrorMessagePathName = HttpContext.Current.Server.MapPath(strPersonalErrorMEssagePath); 
    oStreamWriter = new System.IO.StreamWriter(strPersonalErrorMessagePathName, true, System.Text.Encoding.UTF8); 
}`enter code here` 
+0

Что вы ориентируетесь: Winforms, WPF, ASP ..? __Always__ правильно помечайте свой вопрос! – TaW

+0

Я хотел, чтобы это выясняло те ошибки, которые произойдут в классах C# в пространстве имен: инструменты для веб-формы ASP.NET. было ли это важно? – Keyvan

ответ

0

Просто используйте ex.Source и ex.StackTrace они будут показывать полезную информацию об исключении.

Вы можете прочитать больше о StackTraceHere

+0

Добро пожаловать, брат. Это то, что вы ищете. Или что-то другое? – Hadi

0

Другой вариант заключается в использовании Caller Info атрибутов. Вот ссылка: MSDN : Caller Information (C#)

public static void Log(string errMsg, 
    [System.Runtime.CompilerServices.CallerMemberName] string member = "", 
    [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", 
    [System.Runtime.CompilerServices.CallerLineNumber] int sourceLine = 0) 
    { 
     //log somthing... 
    } 
0

Может быть, вы можете попробовать, что:

 try 
     { 
      // your code... 
     } 
     catch (Exception e) 
     { 
      string strErrorPath = Request.Url.PathAndQuery; 
      SendErrorToPersonalErrorMessage(e, strErrorPath); 
     } 
Смежные вопросы