添加项目文件。
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
|
||||
namespace JYControl
|
||||
{
|
||||
public enum Logtype//枚举类型
|
||||
{
|
||||
Message,
|
||||
Warning,
|
||||
Error
|
||||
}
|
||||
|
||||
public enum LogAddtype//枚举类型
|
||||
{
|
||||
MES,
|
||||
local,
|
||||
}
|
||||
|
||||
public partial class LogManagerControl : UserControl
|
||||
{
|
||||
static bool _newErrorInfo = false;
|
||||
static int _ErrorCount = 0;
|
||||
public LogManagerControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.DoubleBuffered = true;
|
||||
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint |
|
||||
ControlStyles.AllPaintingInWmPaint,
|
||||
true);
|
||||
this.UpdateStyles();
|
||||
}
|
||||
|
||||
private static readonly string logMesPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs", "MESLogs");
|
||||
private static readonly string loglocalPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs", "localLogs");
|
||||
private static LogManagerControl _manager = new LogManagerControl();
|
||||
|
||||
delegate void DoAddMessage(string message, LogAddtype logAddtype, Logtype logType = Logtype.Message);
|
||||
//delegate void DoDelete();
|
||||
public static void AddLog(string strLog, LogAddtype logAddtype, Logtype logType = Logtype.Message)
|
||||
{
|
||||
if (_manager.listView1.InvokeRequired)
|
||||
{
|
||||
DoAddMessage dam = new DoAddMessage(AddLog);
|
||||
_manager.listView1.Invoke(dam, strLog,logAddtype, logType);
|
||||
}
|
||||
else
|
||||
{
|
||||
string strDate = DateTime.Now.ToString("HH:mm:ss:ff");
|
||||
ListViewItem item = new ListViewItem();
|
||||
switch (logType)
|
||||
{
|
||||
case Logtype.Message:
|
||||
if (strLog.Contains("接收到客户端连接") || strLog.Contains("TCP服务器启动监听成功"))
|
||||
{
|
||||
item.ForeColor = Color.White;
|
||||
item.BackColor = Color.SeaGreen;
|
||||
}
|
||||
break;
|
||||
case Logtype.Warning:
|
||||
item.BackColor = Color.Yellow;
|
||||
strLog = "警告:" + strLog;
|
||||
break;
|
||||
case Logtype.Error:
|
||||
item.BackColor = Color.Red;
|
||||
item.ForeColor = Color.White;
|
||||
strLog = "错误:" + strLog;
|
||||
_newErrorInfo = true;
|
||||
_ErrorCount++;
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
item.Text = strDate;
|
||||
item.SubItems.Add(strLog);
|
||||
_manager.listView1.BeginUpdate();
|
||||
|
||||
|
||||
_manager.listView1.Items.Insert(0, item);//添加在第一行
|
||||
//_manager.listView1.Items.Add(item);//添加在最后一行
|
||||
int ff = _manager.listView1.Items.Count - 1;
|
||||
if (_manager.listView1.Items.Count > 150)
|
||||
{
|
||||
_manager.listView1.Items.RemoveAt(ff);
|
||||
}
|
||||
//_manager.listView1.Items[_manager.listView1.Items.Count - 1].EnsureVisible();
|
||||
|
||||
_manager.listView1.EndUpdate();
|
||||
|
||||
switch (logAddtype)
|
||||
{
|
||||
case LogAddtype.MES:
|
||||
if (!Directory.Exists(logMesPath))
|
||||
{
|
||||
Directory.CreateDirectory(logMesPath);
|
||||
}
|
||||
using (StreamWriter sw = new StreamWriter(logMesPath+DateTime.Now.ToString("yyyyMMdd") + ".txt", true))
|
||||
{
|
||||
sw.WriteLine(strDate + " " + logType.ToString() + " " + strLog);
|
||||
}
|
||||
break;
|
||||
case LogAddtype.local:
|
||||
if (!Directory.Exists(loglocalPath))
|
||||
{
|
||||
Directory.CreateDirectory(loglocalPath);
|
||||
}
|
||||
using (StreamWriter sw = new StreamWriter(loglocalPath+DateTime.Now.ToString("yyyyMMdd") + ".txt", true))
|
||||
{
|
||||
sw.WriteLine(strDate + " " + logType.ToString() + " " + strLog);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//添加日志到log文件中
|
||||
}
|
||||
}
|
||||
|
||||
public static void ClearLog()
|
||||
{
|
||||
//if (_manager.listView1.InvokeRequired)
|
||||
//{
|
||||
// DoDelete dam = new DoDelete(ClearLog);
|
||||
// _manager.listView1.Invoke(dam);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
//if (_manager.listView1.Items.Count > 200)
|
||||
//{
|
||||
// _manager.listView1.Items.RemoveAt(item);
|
||||
//}
|
||||
_manager.listView1.Items.Clear();
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 双缓冲ListView ,解决闪烁
|
||||
/// </summary>
|
||||
public class DoubleBufferListView : System.Windows.Forms.ListView
|
||||
{
|
||||
public DoubleBufferListView()
|
||||
{
|
||||
SetStyle(ControlStyles.DoubleBuffer |
|
||||
ControlStyles.OptimizedDoubleBuffer |
|
||||
ControlStyles.AllPaintingInWmPaint, true);
|
||||
UpdateStyles();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
if (m.Msg == 0x0014) // 禁掉清除背景消息
|
||||
return;
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
public static bool HasNewErrorInfo
|
||||
{
|
||||
get { return _newErrorInfo; }
|
||||
set { _newErrorInfo = value; }
|
||||
}
|
||||
public static int ErrorInfoCount
|
||||
{
|
||||
get { return _ErrorCount; }
|
||||
set { _ErrorCount = 0; }
|
||||
}
|
||||
|
||||
public static LogManagerControl Manager
|
||||
{
|
||||
get { return LogManagerControl._manager; }
|
||||
set { LogManagerControl._manager = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user