zoukankan      html  css  js  c++  java
  • 注册表,以及记录当前调用方法的基本信息的代码

    public class TestStackTrace
        {
            List<object> paramValueItems = new List<object>();
            public void TestMethod(int num,string msg) 
            {
                //注册表的写入
                RegistryKey rk = Registry.LocalMachine;
                rk.SetValue("LOLRegister", "Do");
                //记录方法参数的值
                paramValueItems.Clear();
                paramValueItems.Add(num);
                paramValueItems.Add(msg);
    
                WriteLog(paramValueItems);
    
                num += num;
                msg = num.ToString() + "hello word";
            }
            public void WriteLog(List<object> items)
            {
                try
                {
                    //如果可以输出日志,就执行
                    //if (IsEnableOutPutLog == true)
                    //{
                        StackTrace st = new StackTrace(true);
                        //这个括号里面的参数从0开始,0就是自己,1就是上一个
                        MethodBase methodName = st.GetFrame(1).GetMethod();
                        //得到参数集合
                        ParameterInfo[] paramInfo = st.GetFrame(1).GetMethod().GetParameters();
                        //文件路径
                        string fileName = "MethodInfoLog.txt";
    
                        //定义文件信息对象
                        FileInfo finfo = new FileInfo(fileName);
    
                        //判断文件是否存在以及是否大于2M 2048000
                        if (finfo.Exists && finfo.Length > 2048000)
                        {
                            try
                            {
                                //删除该文件
                                finfo.Delete();
                            }
                            catch (Exception e)
                            {
    
                            }
    
                        }
                        using (StreamWriter writer = new StreamWriter(fileName, true, System.Text.Encoding.UTF8, 1024))
                        {
                            writer.WriteLine("方法名称:" + methodName.Name);
                            writer.WriteLine("调用时间: " + DateTime.Now);
                            writer.WriteLine("--------------------------------------------------------------------");
                            for (int i = 0; i < items.Count; i++)
                            {
                                writer.WriteLine("参数名称:" + paramInfo[i].Name);
                                writer.WriteLine("参数类型:" + paramInfo[i].ParameterType);
                                writer.WriteLine("参数值:" + items[i].ToString());
                                writer.WriteLine("参数位置: " + paramInfo[i].Position);
                                writer.WriteLine(String.Empty);
                                writer.WriteLine("*********************************************************************");
                                writer.Flush();
                                writer.Close();
                            }
    
                        }
    
                    //}
                }
                catch (Exception ex)
                {
                    //WriteLog(ex, "方法记录出现异常!");
                }
            }
  • 相关阅读:
    统计英文文章单词出现的频率
    验证码程序
    随机出题程序
    Toast提示和Menu菜单
    Failed to resolve:com.android.support:appcompat-v7第一次运行安卓程序报错
    Android stdio下载与安装教学
    简单的三级联动
    河北省科技创新平台涉众分析(交流讨论)
    项目目标文档
    系统利益相关者描述案例
  • 原文地址:https://www.cnblogs.com/llcdbk/p/4495092.html
Copyright © 2011-2022 走看看