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) {