添加到listView,写入到log日志文件
public void AddInfo(string log,InfoSeverity s,bool outFile = true)
{
string[] str = new string[3];
str[0] = listView1.Items.Count.ToString();
str[1] = DateTime.Now.ToString();
str[2] = log;
ListViewItem lst = new ListViewItem(str);
switch (s)
{
case InfoSeverity.Error:
lst.BackColor = Color.White;//背景色
lst.ForeColor = Color.Red;//前景色
break;
case InfoSeverity.Info:
lst.BackColor = Color.White;//背景色
lst.ForeColor = Color.Blue;//前景色
break;
case InfoSeverity.Warning:
lst.BackColor = Color.Yellow;
lst.ForeColor = Color.Black;//前景色
break;
default:
break;
}
//让最新产生的信息显示在第一行
this.listView1.Items.Insert(0, lst);
listView1.Items[0].EnsureVisible();
//是否需要输出到文件
if (outFile)
{
WriteLog.WriteLogToFile("Log" ,log, (WriteLog.InfoSeverity)(Convert.ToInt32(s)));
}
}
写文件类的实现
public static class WriteLog
{
/// <summary>
/// 消息严重性,枚举
/// </summary>
public enum InfoSeverity
{
Error,
Info,
Warning
}
/// <summary>
/// 写日志到文件,文件位于应用程序的同级目录
/// </summary>
/// <param name="msg">需要写入的日志内容</param>
public static void WriteLogToFile(string msg, InfoSeverity severity)
{
string filePath = AppDomain.CurrentDomain.BaseDirectory + "Log";
if (!Directory.Exists(filePath))//判断文件是否存在,不存在则创建
{
Directory.CreateDirectory(filePath);
}
string logPath = AppDomain.CurrentDomain.BaseDirectory + "Log\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
try
{
using (StreamWriter sw = File.AppendText(logPath))
{
//sw.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "\t" + msg);
sw.WriteLine("消息 :" + msg);
sw.WriteLine("时间 :" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
sw.WriteLine("严重性 :" + severity.ToString());
sw.WriteLine("**************************************************");
sw.WriteLine();
sw.Flush();
sw.Close();
sw.Dispose();
}
}
catch (IOException e)
{
using (StreamWriter sw = File.AppendText(logPath))
{
sw.WriteLine("异常 :" + e.Message);
sw.WriteLine("时间 :" + DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"));
sw.WriteLine("严重性 :Error" );
sw.WriteLine("**************************************************");
sw.WriteLine();
sw.Flush();
sw.Close();
sw.Dispose();
}
}
}
/// <summary>
/// 重载函数:
/// 写日志到文件,文件位于应用程序的同级目录
/// </summary>
/// <param name="documentName">日志文件的名称</param>
/// <param name="msg">需要写入的日志内容</param>
public static void WriteLogToFile(string documentName, string msg, InfoSeverity severity)
{
string errorLogFilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log");
if (!System.IO.Directory.Exists(errorLogFilePath))
{
System.IO.Directory.CreateDirectory(errorLogFilePath);
}
string logFile = System.IO.Path.Combine(errorLogFilePath, documentName + "@" + DateTime.Today.ToString("yyyy-MM-dd") + ".txt");
bool writeBaseInfo = System.IO.File.Exists(logFile);
StreamWriter swLogFile = new StreamWriter(logFile, true, Encoding.Unicode);
//swLogFile.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "\t" + msg);
swLogFile.WriteLine("消息 :" + msg);
swLogFile.WriteLine("时间 :" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
swLogFile.WriteLine("严重性 :" + severity.ToString());
swLogFile.WriteLine("**************************************************");
swLogFile.Close();
swLogFile.Dispose();
}
}
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
我的知识库
本文地址: C#添加信息到ListView,并输出Log日志
本文地址: C#添加信息到ListView,并输出Log日志