From 32e832a898a6466369669717e7b11f7c957371bb Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期四, 25 十二月 2025 09:49:17 +0800
Subject: [PATCH] 修复log显示以及文件大小问题。

---
 LB_SmartVision/VisionForm.cs                             |   70 +++++++----
 LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs |    2 
 LB_VisionProcesses/Cameras/CameraConfig.cs               |   25 +++
 LB_SmartVision/log4net.config                            |  213 ++++++++++++++++++-----------------
 LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs      |    6 
 LB_SmartVision/LB_SmartVision.csproj                     |    3 
 LB_VisionProcesses/Cameras/2DCameraForm.cs               |    3 
 7 files changed, 185 insertions(+), 137 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
index e762178..a3e21fd 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -166,7 +166,7 @@
                 else
                 {
                     isCircleRuning = false;
-                    threadCircleRun.Abort();
+                    //threadCircleRun.Abort();
                 }
             }
             catch { }
diff --git a/LB_SmartVision/LB_SmartVision.csproj b/LB_SmartVision/LB_SmartVision.csproj
index a3610a6..6a5662b 100644
--- a/LB_SmartVision/LB_SmartVision.csproj
+++ b/LB_SmartVision/LB_SmartVision.csproj
@@ -59,6 +59,9 @@
   </ItemGroup>
 
   <ItemGroup>
+    <None Update="log4net.config">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Update="ref\halcondotnet.dll">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
diff --git a/LB_SmartVision/VisionForm.cs b/LB_SmartVision/VisionForm.cs
index 343d396..971f1cb 100644
--- a/LB_SmartVision/VisionForm.cs
+++ b/LB_SmartVision/VisionForm.cs
@@ -242,7 +242,7 @@
             {
                 return;
             }
-            string strInfo = DateTime.Now.ToString("[yyyy:MM:HH:mm:ss:fff] ");
+            string strInfo = DateTime.Now.ToString("[yyyy:MM:dd:HH:mm:ss:fff] ");
             strInfo += strLog;
             if (infoType != LogInfoType.NOSHOW)
             {
@@ -258,19 +258,30 @@
                         switch (infoType)
                         {
                             case LogInfoType.INFO:
-                                this.rich_Info.SelectionColor = Color.Wheat;
-                                break;
+                                {
+                                    this.rich_Info.SelectionColor = Color.Wheat;
+                                    AsyncLogHelper.Info(strLog);
+                                    break;
+                                }
                             case LogInfoType.WARN:
-                                this.rich_Info.SelectionColor = Color.LightGoldenrodYellow;
-                                break;
+                                {
+                                    this.rich_Info.SelectionColor = Color.Yellow;
+                                    AsyncLogHelper.Warn(strLog);
+                                    break;
+                                }
                             case LogInfoType.PASS:
-                                this.rich_Info.SelectionColor = Color.Green;
-                                break;
+                                {
+                                    this.rich_Info.SelectionColor = Color.Green;
+                                    AsyncLogHelper.Info(strLog);
+                                    break;
+                                }
                             case LogInfoType.ERROR:
-                                this.rich_Info.SelectionColor = Color.Red;
-                                break;
+                                {
+                                    this.rich_Info.SelectionColor = Color.Red;
+                                    AsyncLogHelper.Error(strLog);
+                                    break;
+                                }
                         }
-
                         // 鏇存柊 UI 鎺т欢锛屾瘮濡傛樉绀烘帴鏀跺埌鐨勬秷鎭�
                         this.rich_Info.AppendText(strInfo);
                         this.rich_Info.AppendText("\r\n");
@@ -282,32 +293,43 @@
                 {
 
                     if (this.rich_Info.Lines.Length > 1000)
+                    {
                         this.rich_Info.Clear();
-
+                    }
                     // 濡傛灉宸茬粡鍦� UI 绾跨▼涓婏紝鐩存帴鏇存柊 UI
                     switch (infoType)
                     {
                         case LogInfoType.INFO:
-                            this.rich_Info.SelectionColor = Color.Wheat;
-                            break;
+                            {
+                                this.rich_Info.SelectionColor = Color.Wheat;
+                                AsyncLogHelper.Info(strLog);
+                                break;
+                            }
                         case LogInfoType.WARN:
-                            this.rich_Info.SelectionColor = Color.Yellow;
-                            break;
+                            {
+                                this.rich_Info.SelectionColor = Color.Yellow;
+                                AsyncLogHelper.Warn(strLog);
+                                break;
+                            }
                         case LogInfoType.PASS:
-                            this.rich_Info.SelectionColor = Color.Green;
-                            break;
+                            {
+                                this.rich_Info.SelectionColor = Color.Green;
+                                AsyncLogHelper.Info(strLog);
+                                break;
+                            }
                         case LogInfoType.ERROR:
-                            this.rich_Info.SelectionColor = Color.Red;
-                            break;
+                            {
+                                this.rich_Info.SelectionColor = Color.Red;
+                                AsyncLogHelper.Error(strLog);
+                                break;
+                            }
                     }
-
                     this.rich_Info.AppendText(strInfo);
                     this.rich_Info.AppendText("\r\n");
                     this.rich_Info.SelectionStart = this.rich_Info.Text.Length;
                     this.rich_Info.ScrollToCaret();
                 }
             }
-            AsyncLogHelper.Info(strLog);
         }
 
         public static bool SaveAllLayout()
@@ -502,9 +524,9 @@
         {
             XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
             string[] paths = {
-            @"鐢熶骇鏃ュ織\Run_Log",
-            @"鐢熶骇鏃ュ織\Debug_Log",
-            @"鐢熶骇鏃ュ織\Error_Log",
+            @"鐢熶骇鏃ュ織\Run",
+            @"鐢熶骇鏃ュ織\Debug",
+            @"鐢熶骇鏃ュ織\Error",
             @"鐢熶骇鏃ュ織\Fatal",
             @"鐢熶骇鏃ュ織\Warn",
             };
diff --git a/LB_SmartVision/log4net.config b/LB_SmartVision/log4net.config
index 0c99c8f..ada98e4 100644
--- a/LB_SmartVision/log4net.config
+++ b/LB_SmartVision/log4net.config
@@ -1,107 +1,112 @@
 锘�<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
-<configSections>
-	<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
-</configSections>
-<log4net>
-	<root>
-		<level value="ALL"/>
-		<!-- 娣诲姞鎵�鏈塧ppender寮曠敤 -->
-		<appender-ref ref="DebugLogger" />
-		<appender-ref ref="InfoLogger" />
-		<appender-ref ref="WarnLogger" />
-		<appender-ref ref="ErrorLogger" />
-		<appender-ref ref="FatalLogger" />
-	</root>
-	<appender name="DebugLogger" type="log4net.Appender.RollingFileAppender">
-		<file value="鐢熶骇鏃ュ織\Debug_Log\"/>
-		<appendToFile value="true" />
-		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
-		<Encoding value="UTF-8" />
-		<maxSizeRollBackups value="-1"/>
-		<StaticLogFileName value="false"/>
-		<rollingStyle value="Date" />
-		<param name="datePattern" value="yyyy-MM/yyyy-MM-dd.'log'" />
-		<createDirs value="true" />
-		<filter type="log4net.Filter.LevelRangeFilter">
-			<levelMin value="DEBUG" />
-			<levelMax value="DEBUG" />
-		</filter>
-		<layout type="log4net.Layout.PatternLayout">
-			<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
-		</layout>
-	</appender>
-	<appender name="InfoLogger" type="log4net.Appender.RollingFileAppender">
-		<file value="鐢熶骇鏃ュ織\Run_Log\"/>
-		<appendToFile value="true" />
-		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
-		<Encoding value="UTF-8" />
-		<maxSizeRollBackups value="-1"/>
-		<StaticLogFileName value="false"/>
-		<rollingStyle value="Date" />
-		<param name="datePattern" value="yyyy-MM/yyyy-MM-dd.'log'" />
-		<createDirs value="true" />
-		<filter type="log4net.Filter.LevelRangeFilter">
-			<levelMin value="INFO" />
-			<levelMax value="INFO" />
-		</filter>
-		<layout type="log4net.Layout.PatternLayout">
-			<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
-		</layout>
-	</appender>
-	<appender name="WarnLogger" type="log4net.Appender.RollingFileAppender">
-		<file value="鐢熶骇鏃ュ織\Warn\"/>
-		<appendToFile value="true" />
-		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
-		<Encoding value="UTF-8" />
-		<maxSizeRollBackups value="10"/>
-		<StaticLogFileName value="false"/>
-		<rollingStyle value="Date" />
-		<param name="datePattern" value="yyyy-MM/yyyy-MM-dd.'log'" />
-		<createDirs value="true" />
-		<filter type="log4net.Filter.LevelRangeFilter">
-			<levelMin value="WARN" />
-			<levelMax value="WARN" />
-		</filter>
-		<layout type="log4net.Layout.PatternLayout">
-			<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
-		</layout>
-	</appender>
-	<appender name="ErrorLogger" type="log4net.Appender.RollingFileAppender">
-		<file value="鐢熶骇鏃ュ織\Error_Log\"/>
-		<appendToFile value="true" />
-		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
-		<Encoding value="UTF-8" />
-		<maxSizeRollBackups value="-1"/>
-		<StaticLogFileName value="false"/>
-		<rollingStyle value="Date" />
-		<param name="datePattern" value="yyyy-MM/yyyy-MM-dd.'log'" />
-		<createDirs value="true" />
-		<filter type="log4net.Filter.LevelRangeFilter">
-			<levelMin value="ERROR" />
-			<levelMax value="ERROR" />
-		</filter>
-		<layout type="log4net.Layout.PatternLayout">
-			<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
-		</layout>
-	</appender>
-	<appender name="FatalLogger" type="log4net.Appender.RollingFileAppender">
-		<file value="鐢熶骇鏃ュ織\Fatal\"/>
-		<appendToFile value="true" />
-		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
-		<Encoding value="UTF-8" />
-		<maxSizeRollBackups value="-1"/>
-		<StaticLogFileName value="false"/>
-		<rollingStyle value="Date" />
-		<param name="datePattern" value="yyyy-MM/yyyy-MM-dd.'log'" />
-		<createDirs value="true" />
-		<filter type="log4net.Filter.LevelRangeFilter">
-			<levelMin value="FATAL" />
-			<levelMax value="FATAL" />
-		</filter>
-		<layout type="log4net.Layout.PatternLayout">
-			<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
-		</layout>
-	</appender>
-</log4net>
+	<configSections>
+		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
+	</configSections>
+	<log4net>
+		<root>
+			<level value="ALL"/>
+			<!-- 娣诲姞鎵�鏈塧ppender寮曠敤 -->
+			<appender-ref ref="DebugLogger" />
+			<appender-ref ref="InfoLogger" />
+			<appender-ref ref="WarnLogger" />
+			<appender-ref ref="ErrorLogger" />
+			<appender-ref ref="FatalLogger" />
+		</root>
+		<appender name="DebugLogger" type="log4net.Appender.RollingFileAppender">
+			<file value="鐢熶骇鏃ュ織\Debug\"/>
+			<appendToFile value="true" />
+			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+			<Encoding value="UTF-8" />
+			<rollingStyle value="Composite" />
+			<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
+			<maximumFileSize value="10MB" />
+			<maxSizeRollBackups value="-1" />
+			<StaticLogFileName value="true" />
+			<createDirs value="true" />
+			<filter type="log4net.Filter.LevelRangeFilter">
+				<levelMin value="DEBUG" />
+				<levelMax value="DEBUG" />
+			</filter>
+			<layout type="log4net.Layout.PatternLayout">
+				<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
+			</layout>
+		</appender>
+		<appender name="InfoLogger" type="log4net.Appender.RollingFileAppender">
+			<file value="鐢熶骇鏃ュ織\Run\"/>
+			<appendToFile value="true" />
+			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+			<Encoding value="UTF-8" />
+			<rollingStyle value="Composite" />
+			<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
+			<maximumFileSize value="10MB" />
+			<maxSizeRollBackups value="-1" />
+			<StaticLogFileName value="true" />
+			<createDirs value="true" />
+			<filter type="log4net.Filter.LevelRangeFilter">
+				<levelMin value="INFO" />
+				<levelMax value="INFO" />
+			</filter>
+			<layout type="log4net.Layout.PatternLayout">
+				<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
+			</layout>
+		</appender>
+		<appender name="WarnLogger" type="log4net.Appender.RollingFileAppender">
+			<file value="鐢熶骇鏃ュ織\Warn\"/>
+			<appendToFile value="true" />
+			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+			<Encoding value="UTF-8" />
+			<rollingStyle value="Composite" />
+			<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
+			<maximumFileSize value="10MB" />
+			<maxSizeRollBackups value="-1" />
+			<StaticLogFileName value="true" />
+			<createDirs value="true" />
+			<filter type="log4net.Filter.LevelRangeFilter">
+				<levelMin value="WARN" />
+				<levelMax value="WARN" />
+			</filter>
+			<layout type="log4net.Layout.PatternLayout">
+				<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
+			</layout>
+		</appender>
+		<appender name="ErrorLogger" type="log4net.Appender.RollingFileAppender">
+			<file value="鐢熶骇鏃ュ織\Error\"/>
+			<appendToFile value="true" />
+			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+			<Encoding value="UTF-8" />
+			<rollingStyle value="Composite" />
+			<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
+			<maximumFileSize value="10MB" />
+			<maxSizeRollBackups value="-1" />
+			<StaticLogFileName value="true" />
+			<createDirs value="true" />
+			<filter type="log4net.Filter.LevelRangeFilter">
+				<levelMin value="ERROR" />
+				<levelMax value="ERROR" />
+			</filter>
+			<layout type="log4net.Layout.PatternLayout">
+				<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
+			</layout>
+		</appender>
+		<appender name="FatalLogger" type="log4net.Appender.RollingFileAppender">
+			<file value="鐢熶骇鏃ュ織\Fatal\"/>
+			<appendToFile value="true" />
+			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+			<Encoding value="UTF-8" />
+			<rollingStyle value="Composite" />
+			<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
+			<maximumFileSize value="10MB" />
+			<maxSizeRollBackups value="-1" />
+			<StaticLogFileName value="true" />
+			<createDirs value="true" />
+			<filter type="log4net.Filter.LevelRangeFilter">
+				<levelMin value="FATAL" />
+				<levelMax value="FATAL" />
+			</filter>
+			<layout type="log4net.Layout.PatternLayout">
+				<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
+			</layout>
+		</appender>
+	</log4net>
 </configuration>
\ No newline at end of file
diff --git a/LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs b/LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs
index 3c69a2a..894b11f 100644
--- a/LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs
+++ b/LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs
@@ -466,7 +466,7 @@
             btnSaveImage.Dock = DockStyle.Fill;
             btnSaveImage.ForeColor = SystemColors.Desktop;
             btnSaveImage.Location = new Point(266, 2);
-            btnSaveImage.Margin = new Padding(2, 2, 2, 2);
+            btnSaveImage.Margin = new Padding(2);
             btnSaveImage.Name = "btnSaveImage";
             btnSaveImage.Size = new Size(84, 30);
             btnSaveImage.TabIndex = 8;
@@ -736,7 +736,7 @@
             controlBox1.EnableMaximizeButton = false;
             controlBox1.EnableMinimizeButton = false;
             controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
-            controlBox1.Location = new Point(807, 15);
+            controlBox1.Location = new Point(785, 18);
             controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
             controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
             controlBox1.Name = "controlBox1";
@@ -752,7 +752,7 @@
             panel_2DCameraForm.EdgeColor = Color.FromArgb(32, 41, 50);
             panel_2DCameraForm.Location = new Point(10, 70);
             panel_2DCameraForm.Name = "panel_2DCameraForm";
-            panel_2DCameraForm.Padding = new Padding(5, 5, 5, 5);
+            panel_2DCameraForm.Padding = new Padding(5);
             panel_2DCameraForm.Size = new Size(865, 601);
             panel_2DCameraForm.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
             panel_2DCameraForm.TabIndex = 20;
diff --git a/LB_VisionProcesses/Cameras/2DCameraForm.cs b/LB_VisionProcesses/Cameras/2DCameraForm.cs
index 361de9b..6dc7029 100644
--- a/LB_VisionProcesses/Cameras/2DCameraForm.cs
+++ b/LB_VisionProcesses/Cameras/2DCameraForm.cs
@@ -301,8 +301,9 @@
         private void btnEdit_Click(object sender, EventArgs e)
         {
             if (camera == null)
+            {
                 return;
-
+            }
             using (Form editForm = new Form())
             {
                 editForm.Text = "楂樼骇鍙傛暟璁剧疆 - " + camera.SN;
diff --git a/LB_VisionProcesses/Cameras/CameraConfig.cs b/LB_VisionProcesses/Cameras/CameraConfig.cs
index 66303bd..86ebc86 100644
--- a/LB_VisionProcesses/Cameras/CameraConfig.cs
+++ b/LB_VisionProcesses/Cameras/CameraConfig.cs
@@ -256,12 +256,17 @@
                     {
                         times--;
                         if (TriggerSource == TriggerSource.Software)
+                        {
                             Camera.GetImageWithSoftTrigger(out bitmap, timeout);
+                        }
                         else
+                        {
                             Camera.GetImage(out bitmap, timeout);
-
+                        }
                         if (bitmap != null)
+                        {
                             break;
+                        }
                         else if (isRegrab)
                         {
                             Debug.WriteLine($"鍙栧浘澶辫触,閲嶆柊鍙栧浘,鍓╀綑娆℃暟:{times}");
@@ -269,8 +274,9 @@
                     } while (times > 0 && isRegrab);
 
                     if (isUpParams)
+                    {
                         Camera.SetCamConfig(oriConfig);
-
+                    }
                     OutputImage = bitmap;
                 }
 
@@ -293,14 +299,23 @@
         {
             Result = true;
             Msg = "";
-            OutputImage = null;
-
+            if (OutputImage != null)
+            {
+                if (OutputImage is Bitmap)
+                {
+                    ((Bitmap)OutputImage).Dispose();
+                }
+                OutputImage = null;
+            }
             if (Record != null)
+            {
                 Record.Dispose();
+            }
         }
 
         public override void Dispose()
         {
+
             return;
         }
 
@@ -314,7 +329,9 @@
                 if (OutputImage != null)
                 {
                     if (OutputImage is Bitmap)
+                    {
                         obj.OutputImage = ((Bitmap)OutputImage).Clone();
+                    }
                 }
 
                 return obj;

--
Gitblit v1.9.3