增加PLC数据的日志记录

This commit is contained in:
liming 蔡
2026-08-14 19:28:16 +08:00
parent a17a969f25
commit 508647ecca
7 changed files with 61 additions and 1 deletions
+3
View File
@@ -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);
+13
View File
@@ -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;
} }
} }
+9
View File
@@ -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("错误日志");
}
} }
} }
+1
View File
@@ -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++)
{ {
+1 -1
View File
@@ -331,7 +331,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE
CgAAAk1TRnQBSQFMAgEBAwEAAcgBCAHIAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CgAAAk1TRnQBSQFMAgEBAwEAAeABCAHgAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+19
View File
@@ -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" />
+15
View File
@@ -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>
/// 错误日志带异常 /// 错误日志带异常