日志系统2

This commit is contained in:
2026-02-05 01:43:30 +08:00
parent 1bfa4cf1f3
commit ba22066a23
6 changed files with 63 additions and 46 deletions

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using CMLeonOS.Logger;
namespace CMLeonOS
{
@@ -9,6 +10,7 @@ namespace CMLeonOS
private static EnvironmentVariableManager instance;
private string envFilePath = @"0:\system\env.dat";
private Dictionary<string, string> environmentVariables;
private static CMLeonOS.Logger.Logger _logger = CMLeonOS.Logger.Logger.Instance;
private EnvironmentVariableManager()
{
@@ -45,11 +47,12 @@ namespace CMLeonOS
environmentVariables[varName] = varValue;
}
}
_logger.Info("EnvManager", $"Loaded {environmentVariables.Count} environment variables from file");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error loading environment variables: {ex.Message}");
_logger.Error("EnvManager", $"Error loading environment variables: {ex.Message}");
}
}
@@ -57,8 +60,7 @@ namespace CMLeonOS
{
try
{
Console.WriteLine($"Saving environment variables to: {envFilePath}");
Console.WriteLine($"Variables to save: {environmentVariables.Count}");
_logger.Info("EnvManager", $"Saving {environmentVariables.Count} environment variables to file");
// 构建文件内容
string content = "";
@@ -67,9 +69,6 @@ namespace CMLeonOS
content += $"{kvp.Key}={kvp.Value}\n";
}
Console.WriteLine("Environment variables content:");
Console.WriteLine(content);
// 使用FileSystem的WriteFile方法来确保在Cosmos中正常工作
// 注意这里需要访问FileSystem实例但EnvironmentVariableManager是独立的
// 所以我们使用File.WriteAllText但添加重试机制
@@ -83,25 +82,23 @@ namespace CMLeonOS
{
File.WriteAllText(envFilePath, content);
success = true;
Console.WriteLine("Environment variables saved successfully.");
_logger.Info("EnvManager", "Environment variables saved successfully");
}
catch (Exception ex)
{
retryCount++;
Console.WriteLine($"Save attempt {retryCount} failed: {ex.Message}");
// Thread.Sleep(1000); // 等待1秒后重试
_logger.Warning("EnvManager", $"Save attempt {retryCount} failed: {ex.Message}");
}
}
if (!success)
{
Console.WriteLine("Failed to save environment variables after 3 attempts.");
_logger.Error("EnvManager", "Failed to save environment variables after 3 attempts");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error saving environment variables: {ex.Message}");
Console.WriteLine($"Exception type: {ex.GetType().Name}");
_logger.Error("EnvManager", $"Error saving environment variables: {ex.Message}");
}
}
@@ -109,13 +106,13 @@ namespace CMLeonOS
{
if (string.IsNullOrWhiteSpace(varName))
{
_logger.Warning("EnvManager", "Variable name cannot be empty");
Console.WriteLine("Error: Variable name cannot be empty");
return false;
}
environmentVariables[varName] = varValue;
SaveEnvironmentVariables();
Console.WriteLine($"Environment variable '{varName}' set to '{varValue}'");
return true;
}
@@ -136,20 +133,15 @@ namespace CMLeonOS
{
if (environmentVariables.Count == 0)
{
Console.WriteLine("No environment variables set.");
_logger.Info("EnvManager", "No environment variables set");
}
else
{
Console.WriteLine("====================================");
Console.WriteLine(" Environment Variables");
Console.WriteLine("====================================");
Console.WriteLine();
_logger.Info("EnvManager", $"Listing {environmentVariables.Count} environment variables");
foreach (var kvp in environmentVariables)
{
Console.WriteLine($" {kvp.Key}={kvp.Value}");
_logger.Info("EnvManager", $" {kvp.Key}={kvp.Value}");
}
Console.WriteLine();
Console.WriteLine($"Total: {environmentVariables.Count} variables");
}
}
@@ -159,12 +151,12 @@ namespace CMLeonOS
{
environmentVariables.Remove(varName);
SaveEnvironmentVariables();
Console.WriteLine($"Environment variable '{varName}' deleted");
_logger.Info("EnvManager", $"Environment variable '{varName}' deleted");
return true;
}
else
{
Console.WriteLine($"Error: Environment variable '{varName}' not found");
_logger.Warning("EnvManager", $"Environment variable '{varName}' not found");
return false;
}
}