增加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
{
// 通过名称获取专属的 PLC Logger
private static readonly ILog plcLog = LogManager.GetLogger("PlcDataLogger");
public static void WriteLog(Type t, Exception ex)
{
ILog log = LogManager.GetLogger(t);
+13
View File
@@ -32,6 +32,7 @@
this.btn_stationExit = new MetroFramework.Controls.MetroButton();
this.btn_stationArrival = new MetroFramework.Controls.MetroButton();
this.btn_sendMQTTClient = new MetroFramework.Controls.MetroButton();
this.btn_logPLCData = new MetroFramework.Controls.MetroButton();
this.SuspendLayout();
//
// btn_readCollectItemCfg
@@ -74,11 +75,22 @@
this.btn_sendMQTTClient.UseSelectable = true;
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
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
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_stationArrival);
this.Controls.Add(this.btn_stationExit);
@@ -95,5 +107,6 @@
private MetroFramework.Controls.MetroButton btn_stationExit;
private MetroFramework.Controls.MetroButton btn_stationArrival;
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 = "测试数据";
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)
{
var bytes = content.ByteReverse();
JY.Utility.LogHelper.LogPLCData("电池出站数据", bytes);
for (int i = 0; i < 2; i++)
{
+1 -1
View File
@@ -331,7 +331,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE
CgAAAk1TRnQBSQFMAgEBAwEAAcgBCAHIAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CgAAAk1TRnQBSQFMAgEBAwEAAeABCAHgAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+19
View File
@@ -13,11 +13,30 @@
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</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">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- 3. 定义专属的 PLC Logger -->
<!-- additivity="false" 是关键:防止 PLC 日志同时被写入到 root 的系统日志文件中 -->
<logger name="PlcDataLogger">
<level value="INFO" />
<appender-ref ref="PlcDataAppender" />
</logger>
<logger name="Test">
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />