优化日志系统:统一使用DeviceManager.LogToFile控制所有日志功能,移除冗余字段

This commit is contained in:
zqm
2025-11-05 15:49:42 +08:00
parent 056abfb8ed
commit a50eed9a06

View File

@@ -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
/// </summary>
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
/// <summary>
/// 写入日志信息到文件
/// 只有在_saveLogEnabled为true时才会保存
/// 只有在DeviceManager.LogToFile为true时才会保存
/// </summary>
/// <param name="logMessage">日志消息</param>
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,13 +1952,20 @@ namespace JoyD.Windows.CS.Toprie
// 生成日志文件名(按日期)
string logFileName = $"Log_{DateTime.Now:yyyyMMdd}.txt";
string logFilePath = Path.Combine(logDir, logFileName);
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)
{
// 记录日志写入失败的异常(但不抛出,以免影响主程序)