136 lines
4.7 KiB
C#
136 lines
4.7 KiB
C#
using Api.Framework;
|
||
using Chat.Framework;
|
||
using DevExpress.XtraEditors;
|
||
using System;
|
||
using System.IO;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
using Api.Framework.Events;
|
||
|
||
namespace FLSystem.Forms
|
||
{
|
||
public partial class system_log_control : DevExpress.XtraEditors.XtraUserControl
|
||
{
|
||
public system_log_control()
|
||
{
|
||
InitializeComponent();
|
||
EventClient.LogEvent += EventClient_LogEvent;
|
||
ChatClient.Events.WXWriteLogEvent += Events_WXWriteLogEvent;
|
||
this.Disposed += System_log_control_Disposed;
|
||
this.is_roll = ApiClient.Setting.SystemConfig.show_debug_log;
|
||
this.buttonCheck.Checked = this.is_roll;
|
||
}
|
||
|
||
private void System_log_control_Disposed(object sender, EventArgs e)
|
||
{
|
||
EventClient.LogEvent -= EventClient_LogEvent;
|
||
ChatClient.Events.WXWriteLogEvent -= Events_WXWriteLogEvent;
|
||
//tokenSource.Cancel();
|
||
}
|
||
|
||
private void Events_WXWriteLogEvent(object sender, Chat.Framework.WXSdk.Events.WXWriteLog e)
|
||
{
|
||
//if (e.Client.User != null && e.Client.User.Uin != 0) OnLog($"{e.Client.User.Nick}({e.Client.WeixinHao}):{e.Message}");
|
||
//else OnLog(e.Message);
|
||
|
||
if (e.Client.User != null && e.Client.User.Uin != 0) showLog($"{e.Client.User.Nick}({e.Client.WeixinHao}):{e.Message}");
|
||
else showLog(e.Message);
|
||
|
||
}
|
||
|
||
public void showLog(string log)
|
||
{
|
||
this.SafeInvoke(() =>
|
||
{
|
||
OnLog(log);
|
||
});
|
||
}
|
||
|
||
|
||
private bool is_roll = true;
|
||
private void EventClient_LogEvent(object sender, Api.Framework.Events.LogEvents e)
|
||
{
|
||
//OnLog(e.Message);
|
||
//this.BeginInvoke(updateLog, e.Message);
|
||
try
|
||
{
|
||
showLog(e.Message);
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
|
||
private static object lock_log = new object();
|
||
private void OnLog(string message)
|
||
{
|
||
try
|
||
{
|
||
var _msg = message;
|
||
try
|
||
{
|
||
string name = Api.Framework.Tools.Util.MapFile(DateTime.Now.ToString("yyyy-MM-dd") + ".log", "Cache\\系统日志");
|
||
File.AppendAllLines(name, new string[] { DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-->" + _msg });
|
||
}
|
||
catch
|
||
{ }
|
||
|
||
if (is_roll)
|
||
{
|
||
try
|
||
{
|
||
if (this.richTextBox1.Lines.Length > 1000)
|
||
this.richTextBox1.Text = "";
|
||
if (!string.IsNullOrEmpty(this.richTextBox1.Text))
|
||
this.richTextBox1.AppendText("\r\n");
|
||
this.richTextBox1.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-->" + message);
|
||
this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
|
||
this.richTextBox1.ScrollToCaret();
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
|
||
#region 老妖以前的 xxx
|
||
//this.Invoke(new Action(delegate
|
||
//{
|
||
//try
|
||
//{
|
||
// if (this.log_text.Lines.Length > 1000)
|
||
// this.log_text.Text = "";
|
||
// if (!string.IsNullOrEmpty(this.log_text.Text))
|
||
// this.log_text.Text += "\r\n";
|
||
// this.log_text.Text += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-->" + message;
|
||
// this.log_text.SelectionStart = this.log_text.Text.Length;
|
||
// this.log_text.ScrollToCaret();
|
||
//}
|
||
//catch (Exception)
|
||
//{ }
|
||
//}));
|
||
#endregion
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
XtraMessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
}
|
||
|
||
private void buttonCheck1_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
this.is_roll = this.buttonCheck.Checked;
|
||
ApiClient.Setting.SystemConfig.show_debug_log = this.is_roll;
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
|
||
private void hyperlinkLabelControl1_Click(object sender, EventArgs e)
|
||
{
|
||
//this.log_text.Text = "";
|
||
this.richTextBox1.Text = "";
|
||
}
|
||
}
|
||
}
|