首页 新闻 赞助 找找看

函数调用记录——十万火急!!!

0
悬赏园豆:100 [已关闭问题]

请求大虾指点:

我现在想用log4net记录当前函数是被上层哪个函数调用的,请问有什么办法?

当前使用三层架构,想在DAL层获取是哪个BLL层的函数调用的当前函数,同时再获取是哪个页面的事件调用的BLL层的函数。

十万火急!!!!!!!!!!!!!!!!!!!

山水的主页 山水 | 初学一级 | 园豆:100
提问于:2009-08-13 17:51
< >
分享
其他回答(1)
0

如何在被调用方法中获取调用方的相关信息呢,其实这个问题就是利用调用堆栈来获取这些信息.利用调用堆栈可以获取很多有用的信息.

由于代码比较简单,所以也不多说了:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using System.Diagnostics;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MyTest t = new MyTest();
            t.add(1);
        }
    }

    public class MyTest
    {
        public void add(int i)
        {
            i++;       
            StackTrace ss = new StackTrace(true);
            Type t = ss.GetFrame(1).GetMethod().DeclaringType;
            MessageBox.Show(t.FullName);
        }
    }
}

引自:http://www.itwis.com/html/net/c/20090304/3505.html

 

还有这篇文章也可用于参考:http://blog.csdn.net/laorer/archive/2009/04/24/4105841.aspx

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-08-13 22:42
0

这个应该与层无关。

你可以在任意想要记录日志的地方,创建实例

 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

这里可以参考

http://www.cnblogs.com/downmoon/archive/2009/01/13/1374745.html

http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx

邀月 | 园豆:25475 (高人七级) | 2009-08-24 10:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册