下面是C#写日志类实例的攻略。
概述
在开发应用程序时,经常需要记录应用程序的运行日志,以便在程序出现异常等问题时快速定位问题。C#提供了System.Diagnostics命名空间下的Trace和Debug类用于记录日志信息,而自己编写一个日志类可以更加灵活地记录日志信息,并可以根据自己的需求进行扩展和定制。
实现步骤
1. 创建日志类
首先需要创建一个日志类来完成日志记录的功能。可以创建一个Log类,该类应包含写日志和读取日志的方法。写日志方法用于记录应用程序的运行日志,确定日志类型,记录日志时间,记录日志内容;读取日志方法用于查询、搜索指定时间段内的运行日志。
下面是一个简单的示例代码:
public class Log
{
private string logFile;
public Log(string logFile)
{
this.logFile = logFile;
}
public void WriteLog(string logType, string logMessage)
{
string currentTime = DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss] ");
string logContent = currentTime + logType + " " + logMessage;
using (StreamWriter streamWriter = new StreamWriter(logFile, true))
{
streamWriter.WriteLine(logContent);
}
}
public List<string> ReadLog(DateTime startTime, DateTime endTime)
{
List<string> logs = new List<string>();
using (StreamReader streamReader = new StreamReader(logFile))
{
string log;
while ((log = streamReader.ReadLine()) != null)
{
string[] logItems = log.Split(' ');
DateTime logTime = DateTime.Parse(logItems[0] + " " + logItems[1]);
if (logTime >= startTime && logTime <= endTime)
{
logs.Add(log);
}
}
}
return logs;
}
}
2. 使用日志类
使用日志类非常简单,只需要实例化日志类,然后使用WriteLog方法记录日志即可。
下面是一个简单的示例代码:
static void Main(string[] args)
{
Log log = new Log("log.txt");
log.WriteLog("Info", "Application started.");
Console.WriteLine("Press any key to exit...");
Console.ReadLine();
}
3. 高级扩展
在Logger类中,还可以添加其他的功能。例如:支持设置日志级别、支持输出日志到控制台等。
下面是一个带有日志级别和控制台输出功能的示例代码:
public class Logger
{
private string logFile;
private int logLevel;
public Logger(string logFile, int logLevel)
{
this.logFile = logFile;
this.logLevel = logLevel;
}
public void WriteLog(int level, string logMessage)
{
if (level <= logLevel)
{
string currentTime = DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss] ");
string logContent = currentTime + "[" + level + "]" + logMessage;
Console.WriteLine(logContent);
using (StreamWriter streamWriter = new StreamWriter(logFile, true))
{
streamWriter.WriteLine(logContent);
}
}
}
}
使用示例:
static void Main(string[] args)
{
Logger logger = new Logger("log.txt", 2);
logger.WriteLog(1, "Debug log.");
logger.WriteLog(2, "Info log.");
logger.WriteLog(3, "Error log.");
Console.WriteLine("Press any key to exit...");
Console.ReadLine();
}
总结
以上就是C#编写日志类实例的完整攻略,我们创建了一个简单的日志类,并对其进行了高级扩展。可以根据自己的需求进行更多的定制和扩展,使其更符合应用需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#写日志类实例 - Python技术站