当前位置:编程学习 > C#/ASP.NET >>

要测这些数据,用什么工具

开发了一个软件Winform,用来接收数据放入数据库。
软件运行12~24小时,就会发生一个错误,找不到错误原因。

想采集机器上的以下数据分析下,分别是:
    服务端口、数据库更新日志、Com端口监听、内存和CPU使用情况。

问题一:监听这些数据可以吗???如果不是的,一般监听什么数据。

问题二:有什么工具可以自动定时/实时监听这些数据吗???

问题三:获取这些数据不会还要自己开发一个软件吧???
  --------------------编程问答-------------------- --------------------编程问答-------------------- 关键还要看是什么错误 --------------------编程问答--------------------

所有问题只需在开发过程中写log既能解决。

在认为重要的地方将认为可以判定过程是否成功的数据log到一个文本,用来记录程序的过程。
--------------------编程问答--------------------
引用 3 楼 sunzongbao2007 的回复:
所有问题只需在开发过程中写log既能解决。

在认为重要的地方将认为可以判定过程是否成功的数据log到一个文本,用来记录程序的过程。


有点不明白啊。 --------------------编程问答-------------------- 看系统的事件日志,里面记录得很清楚的。 --------------------编程问答--------------------
引用 4 楼 starryplayer 的回复:
有点不明白啊。

比如,你有一个这样的工具类 MyLogger

他的实现是类似下面的

 public class MyLogger
{
   public static StreamWriter logWriter = new StreamWriter("D:\\log.txt",true);
   public string sourceType = string.Empty;
   public const string INFO_LOG = "Info";
   public MyLogger(Type type)
   {
       this.sourceType = type.ToString();
   }
   public void Info(string message)
  { 
     lock(logWriter)
     {
           logWriter.WriteLine(string.Format("[{0}]:[{1}]:[{2}]:{3}",INFO_LOG,this.sourceType,DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),message));
           logWriter.Flush();
     }
  }
}


然后在你需要监视的地方这么写,比如监视一个int number


public class Test
{
 private int number = 0;
 private static MyLogger logger = new MyLogger(typeof(Test));

 public void TestMethod
 {
  //.....some operations

  logger.Info(string.Format("The number is [{0}] now",number));

 //....some other operations
  logger.Info(string.Format("This time number is changed to {0}",number));
 }
}


这样使用文本来记录操作,保持这样的习惯的话,以后你的程序发布出去之后,依然可以根据自身的log,找出release bugs的原因。
.
累死我了,这个例子是直接在论坛编辑器里面写的,可能有错误。如果你用这种方法,需要你再设计调试了。反正意思是这么个意思。 --------------------编程问答--------------------
引用 5 楼 tsapi 的回复:
看系统的事件日志,里面记录得很清楚的。



帮顶 --------------------编程问答--------------------
引用 3 楼 sunzongbao2007 的回复:
所有问题只需在开发过程中写log既能解决。

在认为重要的地方将认为可以判定过程是否成功的数据log到一个文本,用来记录程序的过程。


顶   --------------------编程问答-------------------- 偶这有一个错误日志输出的 lz可以在你的Dbhelper直接操作库的方法中加上Try……catch 完后把catch的错误信息给输出的日志里  

        /// <summary>
        /// 错误日志书写
         /// </summary>
        /// <param name="sqlStr">发生错误的sql语句或者标记</param>
        /// <param name="errorMessage">错误信息</param>
        public static void ErrorLogPrint(string sqlStr, string errorMessage)
        {
            string filePath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\MemberWeb";
            StringBuilder result = new StringBuilder("-----------------------------");
            result.Append(DateTime.Now.ToString("yyyy-MM-dd  HH:mm:ss"));
            result.Append("---------------------------\r\n");
            result.Append("发生错误的语句:");
            result.Append(sqlStr);
            result.Append("\r\n错误信息:");
            result.Append(errorMessage);
            if (!Directory.Exists(filePath))//文件所在路径不存在时 创建路径
            {
                Directory.CreateDirectory(filePath);
            }
            FileInfo fi = new FileInfo(filePath + @"\ErrorLog.txt");
            if (!fi.Exists)//文件不存在时 创建文件
            {
                using (StreamWriter sw = fi.CreateText())
                {
                    sw.WriteLine(result.ToString());
                }
            }
            else
            {
                if (fi.Length >= 6000)//文件内容的长度大于一定范围时,清空
                {
                    fi.Delete();
                }
                using (StreamWriter sw = fi.AppendText())
                {
                    sw.WriteLine(result.ToString());
                }
            }
        }
--------------------编程问答-------------------- 加try_catch是一个不错的方法

你不就是接收数据把数据放入数据库,

可以在插入数据库的地方加一些log打印日志

我们是这样做的

你可以试一下 --------------------编程问答-------------------- 好习惯 --------------------编程问答--------------------
引用 5 楼 tsapi 的回复:
看系统的事件日志,里面记录得很清楚的。


系统的事件日志里面有“应用程序”、“系统”这两项。

“系统日志”:来源为“Print”和“TermServDevices”的,它们是什么啊???

“应用程序”:来源为“MSSQLSERVER”,类型为“失败审核”。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,