增加PLC数据的日志记录
This commit is contained in:
@@ -5,6 +5,9 @@ namespace JY.Inspection
|
|||||||
{
|
{
|
||||||
internal class Log4Helper
|
internal class Log4Helper
|
||||||
{
|
{
|
||||||
|
// 通过名称获取专属的 PLC Logger
|
||||||
|
private static readonly ILog plcLog = LogManager.GetLogger("PlcDataLogger");
|
||||||
|
|
||||||
public static void WriteLog(Type t, Exception ex)
|
public static void WriteLog(Type t, Exception ex)
|
||||||
{
|
{
|
||||||
ILog log = LogManager.GetLogger(t);
|
ILog log = LogManager.GetLogger(t);
|
||||||
|
|||||||
Generated
+13
@@ -32,6 +32,7 @@
|
|||||||
this.btn_stationExit = new MetroFramework.Controls.MetroButton();
|
this.btn_stationExit = new MetroFramework.Controls.MetroButton();
|
||||||
this.btn_stationArrival = new MetroFramework.Controls.MetroButton();
|
this.btn_stationArrival = new MetroFramework.Controls.MetroButton();
|
||||||
this.btn_sendMQTTClient = new MetroFramework.Controls.MetroButton();
|
this.btn_sendMQTTClient = new MetroFramework.Controls.MetroButton();
|
||||||
|
this.btn_logPLCData = new MetroFramework.Controls.MetroButton();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btn_readCollectItemCfg
|
// btn_readCollectItemCfg
|
||||||
@@ -74,11 +75,22 @@
|
|||||||
this.btn_sendMQTTClient.UseSelectable = true;
|
this.btn_sendMQTTClient.UseSelectable = true;
|
||||||
this.btn_sendMQTTClient.Click += new System.EventHandler(this.btn_sendMQTTClient_Click);
|
this.btn_sendMQTTClient.Click += new System.EventHandler(this.btn_sendMQTTClient_Click);
|
||||||
//
|
//
|
||||||
|
// btn_logPLCData
|
||||||
|
//
|
||||||
|
this.btn_logPLCData.Location = new System.Drawing.Point(263, 220);
|
||||||
|
this.btn_logPLCData.Name = "btn_logPLCData";
|
||||||
|
this.btn_logPLCData.Size = new System.Drawing.Size(125, 53);
|
||||||
|
this.btn_logPLCData.TabIndex = 4;
|
||||||
|
this.btn_logPLCData.Text = "记录PLC数据";
|
||||||
|
this.btn_logPLCData.UseSelectable = true;
|
||||||
|
this.btn_logPLCData.Click += new System.EventHandler(this.btn_logPLCData_Click);
|
||||||
|
//
|
||||||
// FrmTest
|
// FrmTest
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(998, 586);
|
this.ClientSize = new System.Drawing.Size(998, 586);
|
||||||
|
this.Controls.Add(this.btn_logPLCData);
|
||||||
this.Controls.Add(this.btn_sendMQTTClient);
|
this.Controls.Add(this.btn_sendMQTTClient);
|
||||||
this.Controls.Add(this.btn_stationArrival);
|
this.Controls.Add(this.btn_stationArrival);
|
||||||
this.Controls.Add(this.btn_stationExit);
|
this.Controls.Add(this.btn_stationExit);
|
||||||
@@ -95,5 +107,6 @@
|
|||||||
private MetroFramework.Controls.MetroButton btn_stationExit;
|
private MetroFramework.Controls.MetroButton btn_stationExit;
|
||||||
private MetroFramework.Controls.MetroButton btn_stationArrival;
|
private MetroFramework.Controls.MetroButton btn_stationArrival;
|
||||||
private MetroFramework.Controls.MetroButton btn_sendMQTTClient;
|
private MetroFramework.Controls.MetroButton btn_sendMQTTClient;
|
||||||
|
private MetroFramework.Controls.MetroButton btn_logPLCData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,5 +65,14 @@ namespace JY.Inspection.Frm
|
|||||||
string payload = "测试数据";
|
string payload = "测试数据";
|
||||||
await MqttSingleton.Instance.SendAsync(topic, payload);
|
await MqttSingleton.Instance.SendAsync(topic, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btn_logPLCData_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
byte[] bytes = new byte[] { 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
|
||||||
|
LogHelper.LogPLCData("电池出站数据", bytes);
|
||||||
|
|
||||||
|
LogHelper.WriteErrorLine("错误日志");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2283,6 +2283,7 @@ namespace JY.Inspection
|
|||||||
private void ParsePlcOutgoingData(byte[] content, OutgoingContainers containers)
|
private void ParsePlcOutgoingData(byte[] content, OutgoingContainers containers)
|
||||||
{
|
{
|
||||||
var bytes = content.ByteReverse();
|
var bytes = content.ByteReverse();
|
||||||
|
JY.Utility.LogHelper.LogPLCData("电池出站数据", bytes);
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -331,7 +331,7 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE
|
||||||
CgAAAk1TRnQBSQFMAgEBAwEAAcgBCAHIAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
CgAAAk1TRnQBSQFMAgEBAwEAAeABCAHgAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
|||||||
@@ -13,11 +13,30 @@
|
|||||||
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
|
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!-- 2. PLC 数据专属 Appender(只记录 PLC 数据,按天生成) -->
|
||||||
|
<appender name="PlcDataAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<file value="Logs/" />
|
||||||
|
<appendToFile value="true" />
|
||||||
|
<rollingStyle value="Date" />
|
||||||
|
<datePattern value="yyyyMMdd'_PlcData.log'" />
|
||||||
|
<staticLogFileName value="false" />
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<!-- PLC 日志通常不需要复杂的线程或级别信息,保持简洁即可 -->
|
||||||
|
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} | %message%newline" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
|
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
|
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!-- 3. 定义专属的 PLC Logger -->
|
||||||
|
<!-- additivity="false" 是关键:防止 PLC 日志同时被写入到 root 的系统日志文件中 -->
|
||||||
|
<logger name="PlcDataLogger">
|
||||||
|
<level value="INFO" />
|
||||||
|
<appender-ref ref="PlcDataAppender" />
|
||||||
|
</logger>
|
||||||
<logger name="Test">
|
<logger name="Test">
|
||||||
<level value="ALL" />
|
<level value="ALL" />
|
||||||
<appender-ref ref="RollingFileAppender" />
|
<appender-ref ref="RollingFileAppender" />
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ namespace JY.Utility
|
|||||||
{
|
{
|
||||||
private static readonly ILog log;
|
private static readonly ILog log;
|
||||||
|
|
||||||
|
private static readonly ILog plcLog;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static bool DebugMode = false;
|
public static bool DebugMode = false;
|
||||||
@@ -46,6 +48,8 @@ namespace JY.Utility
|
|||||||
Console.WriteLine("Log4net.config 文件未找到,日志将无法正常写入");
|
Console.WriteLine("Log4net.config 文件未找到,日志将无法正常写入");
|
||||||
}
|
}
|
||||||
log = LogManager.GetLogger(repository.Name, "Test");
|
log = LogManager.GetLogger(repository.Name, "Test");
|
||||||
|
|
||||||
|
plcLog = LogManager.GetLogger(repository.Name, "PlcDataLogger");
|
||||||
RunClearJob();
|
RunClearJob();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -372,6 +376,17 @@ namespace JY.Utility
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public static void LogPLCData(string name, byte[] data)
|
||||||
|
{
|
||||||
|
if (data == null || data.Length == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string hexString = BitConverter.ToString(data).Replace("-", " ");
|
||||||
|
|
||||||
|
plcLog.Info($"{name} : {hexString}");
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 错误日志带异常
|
/// 错误日志带异常
|
||||||
|
|||||||
Reference in New Issue
Block a user