当前位置:首页 >.NET > 正文内容

C#中的日志类

大滑稽11年前 (2014-03-24).NET1101

 

C#中的日志类 这段时间在做路测数据处理,每天都要导入千万条记录至数据库中。因为数据比较庞大,程序处理的指标也很多,厂家给的原始数据也不能保证百分百正确,那么在整个逻辑处理过程中难免会存在不确定性的BUG。为了高效的保证数据的处理,非常有必要将异常信息的现场情景记录下来,为后续分析提供依据,从而快速解决问题。 日志类本身很简单,就是完成信息的记录功能,其实更重要的是保存哪些有用信息。下面是我参考了下前辈们写的东西修改而来的日志类:

///

/// 日志类 ///

 

 public class ImportDataLog {

//日志文件所在路径

private static string logPath = string.Empty;

///

/// 保存日志的文件夹 ///

 

public static string LogPath {

get {

if (logPath == string.Empty)

{

logPath = AppDomain.CurrentDomain.BaseDirectory;

}

return logPath;

}

set { logPath = value; }

}

//日志前缀说明信息

private static string logFielPrefix = string.Empty;

///

/// 日志文件前缀 ///

 

public static string LogFielPrefix

{

get { return logFielPrefix; }

set { logFielPrefix = value; }

}

///

/// 写日志

 

///日志类型

///日志内容 ///

public static void WriteLog(string logType, string msg)

{

System.IO.StreamWriter sw=null;

try

{       

//同一天同一类日志以追加形式保存

sw = System.IO.File.AppendText( LogPath + LogFielPrefix + "_" + DateTime.Now.ToString("yyyyMMdd") + ".Log" );

sw.WriteLine(logType + "#" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);

}

catch { }

finally

{

sw.Close();

}

}

///

/// 写日志 ///

 

public static void WriteLog(LogType logType, string msg)

{

WriteLog(logType.ToString(), msg);

}

}

///

/// 日志类型 ///

 

public enum LogType

{

Trace, //堆栈跟踪信息

Warning,//警告信息

Error, //错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息

SQL //与数据库相关的信息

}

在程序中,我是特别关注ERROR类型的信息。如注释所示,将引发错误的对象、方法与具体错误信息保存,对解决问题非常有帮助。

定义Exception ex=new Exception() ,则: 建议信息msg组成="Source:{" + ex.Source + "}" + " StackTrace:{" + ex.StackTrace + "}" + " Message:{" + ex.Message + "}"); 班门弄斧,见笑了。。

扫描二维码推送至手机访问。

版权声明:本文由第★一★次发布,如需转载请注明出处。

本文链接:http://wpers.net/post/38.html

标签:C#.NET

“ C#中的日志类” 的相关文章

C#遍历控件的方法

首先,要想遍历,就必须找到你想找的表单里面的所有控件,然后一个个的逐一比对,当找到了你需要的控件的时候,再做你需要的操作。1、foreach方法foreach (Control control in ...

Linq读写XML

         private List<News> GetNews(string html)    &n...

修改注册表限制软件使用次数

 private void Form1_Load(object sender, System.EventArgs e){RegistryKey RootKey,RegKey; //项名为:HKEY_CURRENT_USER\So...

c#中分页显示数据

     //c#中分页显示数据    public partial class Form1 : Form    {  ...

C#修改浏览器主页

string key = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main";      &n...

C#获得程序集

 //获得程序集System.Reflection.Assembly assem = System.Reflection.Assembly.GetExecutingAssembly();...