在C#下面我想实现类似于C的写Log文件功能:
FILE *p=fopen("log.txt", "w");
fprintf(p, "data information");
fclose(p);不知道怎么实现?

解决方案 »

  1.   


        public class Log
        {
            public Log(string LogStr)
            {
                StreamWriter sw = null;
                try
                {
                    LogStr = DateTime.Now.ToLocalTime().ToString()  +"\n" + LogStr;
                    sw = new StreamWriter("D:\\Log.txt", true);
                    sw.WriteLine(LogStr);
                }
                catch
                {
                }
                finally
                {
                    if (sw != null)
                    {
                        sw.Close();
                    }
                }
            }
        }
      

  2.   

    在VS2005里使用,不明白的关键字可以查MSDN
    //写错误日志
                if (ErrList.Count>0)
                {
                    if (!EventLog.SourceExists("ServerSource"))
                    {
                        EventLog.CreateEventSource("ServerSource", "Log");                   
                    }                EventLog myLog = new EventLog();
                    myLog.Source = "ServerSource";                for (int i = 0; i < ErrList.Count; i++)
                    {
                        //写入系统日志里
                        myLog.WriteEntry(ErrList[i].ToString());                    //写日志文件
                        using (StreamWriter w = File.AppendText("log.txt"))
                        {
                            w.Write("\r\n日期 : ");
                            w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
                                DateTime.Now.ToLongDateString());
                            w.WriteLine("  ");
                            w.WriteLine("日志描述:{0}", ErrList[i].ToString());
                            w.WriteLine("-------------------------------");
                            
                            w.Flush();                     }
                    }
                }
      

  3.   

    lz也可以研究一下开源的log4net
    功能绝对强大
      

  4.   

    楼主去这里看看:
    http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html详细介绍了log4net很强大的样子~
      

  5.   

    参考网址:http://www.cnblogs.com/candywyq/articles/821859.html//一、处理代码:using System;using System.Diagnostics;using System.Text;using System.IO; namespace Town.Log{     ///      /// 功能:错误日志类,将错误信息按指定事件日志名记录在系统日志     ///      public class Error     {         ///          /// 记录日志         ///          /// 日志资源名,如:Town          /// 错误信息          public static void Log(string sourceName, string message)         {              EventLog eventLog = null;               // 确定日志是否存在              if (!(EventLog.SourceExists(sourceName)))              {                   EventLog.CreateEventSource(sourceName, sourceName + "Log");              }               if (eventLog == null)              {                   eventLog = new EventLog(sourceName + "Log");                   eventLog.Source = sourceName;              }                            // 记录日志信息              eventLog.WriteEntry(message, System.Diagnostics.EventLogEntryType.Error);         }     }}//设置:因为系统日志的操作是有权限控制的,所以我们还要把对系统日志操作的权限赋给asp.net用户,方法如下:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“安全->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了,加进来后目录中会多一个“aspnet_wp account”//二、调用方法              try              {                   ……              }              catch (Exception ex)              {                   Error.Log("Town", ex.ToString());                   return false;              }//三、一点说明//系统出错后,会自动将出错信息记录到系统日志中,你可以在“开始->程序->管理工具->事件查看器”中发现一个新的项目“TownLog”,这便是记录出错信息的,如下图所示。
      

  6.   

    .Net下有个写日志的类。
    =====
    同意。
      

  7.   

    http://www.codeproject.com/KB/trace/debugtreatise.aspx
    这个比log4net简单,更加适合小项目。如果你的项目比较大,log4net也不是很合适,应该采用CodeSite或者SmartInspect。
      

  8.   

    自己写个简单的xml文件记录日志就行了
    public static void WriteErrorMessageToXmlFile(string errorDate, string errorMessage)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(XmlOperate.xmlPath);    XmlNode root = xmlDoc.SelectSingleNode("Error");
        XmlElement xeErrorItem = xmlDoc.CreateElement("ErrorItem");    XmlElement xeDate = xmlDoc.CreateElement("Date");
        xeDate.InnerText = errorDate;
        xeErrorItem.AppendChild(xeDate);    XmlElement xeMessage = xmlDoc.CreateElement("Message");
        xeMessage.InnerText = errorMessage;
        xeErrorItem.AppendChild(xeMessage);    root.AppendChild(xeErrorItem);    xmlDoc.Save(XmlOperate.xmlPath);}<?xml version="1.0" encoding="utf-8"?>
    <!--记录应用程序的出错信息-->
    <Error>
      <ErrorItem>
        <Date>2007-7-18 19:33:38</Date>
        <Message>测试第一个错误,哈哈!</Message>
      </ErrorItem>
    </Error>
    仅供参考