优化日志系统:统一使用DeviceManager.LogToFile控制所有日志功能,移除冗余字段
This commit is contained in:
@@ -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)
|
||||
{
|
||||
// 记录日志写入失败的异常(但不抛出,以免影响主程序)
|
||||
|
||||
Reference in New Issue
Block a user