public class Log
{
// Fields
private Dictionary<string, int> levels;
public FileStream logFile;
public string logLevel = "";
private string logName = "";
private StreamWriter sw;
// Methods
public Log(string name, string level)
{
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("debug", 0);
dictionary.Add("info", 1);
dictionary.Add("error", 2);
this.levels = dictionary;
this.logFile = null;
this.sw = null;
try
{
string path = "./log";
this.logName = name;
this.logLevel = level;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
this.logFile = new FileStream(path + "/" + this.logName + ".log", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
this.sw = new StreamWriter(this.logFile, Encoding.GetEncoding("GB2312"));
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
if (this.logFile != null)
{
this.logFile.Close();
}
}
}
public void write(string logMsg)
{
try
{
DateTime now = DateTime.Now;
this.sw.WriteLine(string.Format("{0} [DEBUG]: {1}", now.ToString(), logMsg));
this.sw.Flush();
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
public void write(string level, string logMsg)
{
try
{
if (this.levels[this.logLevel.ToLower()] <= this.levels[level.ToLower()])
{
DateTime now = DateTime.Now;
this.sw.WriteLine(string.Format("{0} [{1}]: {2}", now.ToString(), level.ToUpper(), logMsg));
this.sw.Flush();
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
public void close()
{
if (this.logFile != null)
{
this.sw.Close();
this.logFile.Close();
this.sw = null;
this.logFile = null;
}
}
}
【C#】最简单的写日志DEMO
最新推荐文章于 2024-09-10 21:41:16 发布