From a50eed9a0623da11e2d151ff05bb6e1c5a62dbf0 Mon Sep 17 00:00:00 2001 From: zqm Date: Wed, 5 Nov 2025 15:49:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=EF=BC=9A=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8DeviceMan?= =?UTF-8?q?ager.LogToFile=E6=8E=A7=E5=88=B6=E6=89=80=E6=9C=89=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Toprie/Toprie/Camera.cs | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 5c6b9df..854d826 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -45,7 +45,7 @@ namespace JoyD.Windows.CS.Toprie private bool _showMinTemperature = false; // 是否显示最低温度 // 日志保存状态标志 - private bool _saveLogEnabled = false; // 是否启用日志保存 + // 不再需要_saveLogEnabled字段,直接使用DeviceManager.LogToFile静态属性控制日志记录 // 用于保护_lastImage的线程锁 private readonly object _lastImageLock = new object(); @@ -281,8 +281,8 @@ namespace JoyD.Windows.CS.Toprie this.contextMenuStrip1.Opening += ContextMenuStrip1_Opening; // 初始化日志保存状态,确保与菜单项状态同步 - _saveLogEnabled = false; // 默认禁用日志保存 - saveLogToolStripMenuItem.Checked = _saveLogEnabled; + // 直接使用DeviceManager.LogToFile静态属性控制日志记录,无需额外的_saveLogEnabled字段 + saveLogToolStripMenuItem.Checked = DeviceManager.LogToFile; // 将设计模式状态传递给DeviceManager UpdateDesignModeStatus(); @@ -1912,11 +1912,11 @@ namespace JoyD.Windows.CS.Toprie /// private void SaveLogToolStripMenuItem_Click(object sender, EventArgs e) { - // 更新日志保存状态标志 - _saveLogEnabled = saveLogToolStripMenuItem.Checked; + // 更新DeviceManager.LogToFile静态属性,这是控制所有日志记录的单一来源 + DeviceManager.LogToFile = saveLogToolStripMenuItem.Checked; // 可以在这里添加日志记录的初始化或清理逻辑 - if (_saveLogEnabled) + if (DeviceManager.LogToFile) { // 日志启用时的初始化 WriteLog("日志保存功能已启用"); @@ -1930,17 +1930,20 @@ namespace JoyD.Windows.CS.Toprie /// /// 写入日志信息到文件 - /// 只有在_saveLogEnabled为true时才会保存 + /// 只有在DeviceManager.LogToFile为true时才会保存 /// /// 日志消息 private void WriteLog(string logMessage) { // 只有当日志保存功能启用时才执行写入 - if (_saveLogEnabled) + // 直接使用DeviceManager.LogToFile静态属性,保持与系统其他部分一致 + if (DeviceManager.LogToFile) { try { - // 确保项目路径存在 + string logFilePath; + + // 如果项目路径存在,使用项目路径下的Logs目录 if (!string.IsNullOrEmpty(_projectPath) && Directory.Exists(_projectPath)) { // 创建Logs目录(如果不存在) @@ -1949,12 +1952,19 @@ namespace JoyD.Windows.CS.Toprie // 生成日志文件名(按日期) string logFileName = $"Log_{DateTime.Now:yyyyMMdd}.txt"; - string logFilePath = Path.Combine(logDir, logFileName); - - // 写入日志(带时间戳) - string logEntry = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] {logMessage}"; - File.AppendAllText(logFilePath, logEntry + Environment.NewLine); + logFilePath = Path.Combine(logDir, logFileName); } + else + { + // 如果项目路径不存在,使用应用程序目录下的Log.txt + logFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log.txt"); + // 确保目录存在 + Directory.CreateDirectory(Path.GetDirectoryName(logFilePath)); + } + + // 写入日志(带时间戳) + string logEntry = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] {logMessage}"; + File.AppendAllText(logFilePath, logEntry + Environment.NewLine); } catch (Exception ex) {