log4Net中的StackTrace

來源:互聯網
上載者:User
  系統是在開發完畢後才採用了Log4net的架構,結果很多東西都需要引用log4Net的東西,所以想寫一個通用的類,寫一些公用的靜態方法,那樣大家就Happy了,於是又發現一個問題:設定檔的%M老記錄靜態方法中的方法名,而不記錄出錯的方法名。於是順著log4net的藤摸他的瓜。 找到了StackTrace 和StackFrame這些類,其實我對這些類是不太清楚。

    即使這樣我們也得修改呀。

 

 public class LogMgr
    {
        private static ILog log = LogManager.GetLogger(MethodInfo.GetCurrentMethod().DeclaringType);

        public static string LogPosition()
        {
            StackTrace st = new StackTrace();
            StackFrame sf = st.GetFrame(1);
            return "Position:" + sf.GetMethod().DeclaringType.Name+"["+sf.GetMethod().Name+"]\r\n";
        }

        public void Error(string message)
        {
            log.Error(LogPosition()+message);
        }
        public void Debug(string message)
        {
            log.Debug(LogPosition()+ message);
       
        }
        public void Info(string message)
        {
            log.Info(message);
        }
        public void Warn(string message)
        {
            log.Warn(message);
        }
    }

  這個類記錄了當前方法的位置,即LogMgr所在方法的方法名。

 

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.