### VS2005 C# 写日志的类知识点详解 #### 一、概述 在软件开发过程中,为了方便追踪程序运行的状态以及错误信息,通常会使用日志记录技术。本篇将详细介绍一个适用于Visual Studio 2005环境下用C#编写的日志记录类`ImportDataLog`。 #### 二、核心代码解析 ##### 1. 命名空间与类定义 ```csharp using System; using System.Collections.Generic; using System.Text; namespace LZjiekou { public class ImportDataLog { //... } } ``` **解析**: - 使用了`System`、`System.Collections.Generic`和`System.Text`三个命名空间,这些命名空间包含了用于文件操作、字符串处理等的基本类。 - 定义了一个名为`ImportDataLog`的公共类,用于实现日志记录功能。 ##### 2. 日志路径配置 ```csharp private static string logPath = string.Empty; ///<summary> ///获取或设置日志文件存储路径 ///</summary> public static string LogPath { get { if (logPath == string.Empty) { logPath = AppDomain.CurrentDomain.BaseDirectory; } return logPath; } set { logPath = value; } } ``` **解析**: - 定义了一个私有静态字符串`logPath`用于存储日志文件的存储路径,默认为空字符串。 - 提供了一个名为`LogPath`的公共属性,用于获取或设置日志文件存储路径。如果未设置,则默认为应用程序的基目录。 ##### 3. 日志文件前缀配置 ```csharp private static string logFielPrefix = string.Empty; ///<summary> ///获取或设置日志文件名称前缀 ///</summary> public static string LogFielPrefix { get { return logFielPrefix; } set { logFielPrefix = value; } } ``` **解析**: - 定义了一个私有静态字符串`logFielPrefix`用于存储日志文件的名称前缀,默认为空字符串。 - 提供了一个名为`LogFielPrefix`的公共属性,用于获取或设置日志文件名称前缀。 ##### 4. 日志记录方法 ```csharp ///<summary> ///写入日志 ///<param name="logType">日志类型</param> ///<param name="msg">日志消息</param> ///</summary> 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); Exception ex = new Exception(); msg = "Source:{" + ex.Source + "}" + "Stacktrace:{" + ex.StackTrace + "}" + "Message:{" + ex.Message + "}"; } catch { } finally { if (sw != null) sw.Close(); } } ``` **解析**: - 定义了一个名为`WriteLog`的公共静态方法,用于向指定的日志文件中写入一条日志。 - 方法接受两个参数:`logType`表示日志类型,`msg`表示日志消息。 - 使用`System.IO.File.AppendText`方法以追加的方式打开或创建一个日志文件,并将日志信息写入其中。 - 在`try`块中创建了一个新的`Exception`对象,用于捕获当前异常信息,并将其格式化后写入日志文件。 - `catch`块为空,可以在此处添加异常处理逻辑。 - 在`finally`块中关闭`StreamWriter`对象。 ##### 5. 枚举定义 ```csharp ///<summary> ///日志类型枚举 ///</summary> public enum LogType { Trace, // 跟踪信息 Warning, // 警告信息 Error, // 错误信息 SQL // 数据库相关的信息 } ``` **解析**: - 定义了一个名为`LogType`的公共枚举,用于表示日志的不同类型。 - 枚举包含四个成员:`Trace`(跟踪信息)、`Warning`(警告信息)、`Error`(错误信息)和`SQL`(数据库相关的信息)。 ##### 6. 默认日志记录方法 ```csharp public static void WriteLog(string p) { WriteLog("", p); } ``` **解析**: - 提供了一个重载的`WriteLog`方法,该方法接受一个字符串参数`p`,并将其作为日志消息传递给`WriteLog`方法的另一个版本,其中日志类型为空字符串。 #### 三、使用示例 ```csharp // 设置日志路径 ImportDataLog.LogPath = @"D:\Logs\"; // 设置日志文件前缀 ImportDataLog.LogFielPrefix = "MyApp"; // 记录一条跟踪信息 ImportDataLog.WriteLog(ImportDataLog.LogType.Trace, "This is a trace message."); // 记录一条警告信息 ImportDataLog.WriteLog(ImportDataLog.LogType.Warning, "This is a warning message."); // 记录一条错误信息 ImportDataLog.WriteLog(ImportDataLog.LogType.Error, "This is an error message."); ``` **解析**: - 通过设置`LogPath`和`LogFielPrefix`属性来配置日志文件的存储位置和名称前缀。 - 使用`WriteLog`方法记录不同类型的日志信息。 #### 四、总结 本文介绍了如何使用C#在Visual Studio 2005环境下编写一个简单的日志记录类。通过自定义日志路径、文件前缀和日志类型,可以灵活地控制日志文件的存储和记录方式。此外,还提供了异常信息的捕获和记录功能,有助于开发者更好地理解和解决程序运行中的问题。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助