优化日志输出,避免影响用户体验

This commit is contained in:
大石头 2022-04-05 17:46:02 +08:00
parent ec1fec659c
commit 5247bf8581
5 changed files with 51 additions and 35 deletions

View File

@ -116,7 +116,7 @@ namespace Stardust
}
catch (Exception ex)
{
XTrace.Log.Error("注册失败:{0}", ex.GetTrue().Message);
Log?.Error("注册失败:{0}", ex.GetTrue().Message);
}
StartTimer();
@ -153,7 +153,7 @@ namespace Stardust
}
catch (Exception ex)
{
XTrace.WriteLine("注册异常 {0}", ex.GetTrue().Message);
WriteLog("注册异常 {0}", ex.GetTrue().Message);
throw;
}
@ -181,9 +181,13 @@ namespace Stardust
}
catch (Exception ex)
{
XTrace.WriteLine("心跳异常 {0}", ex.GetTrue().Message);
if (Log != null && Log.Level <= LogLevel.Debug)
{
WriteLog("心跳异常 {0}", ex.GetTrue().Message);
throw;
throw;
}
return null;
}
}
#endregion
@ -269,7 +273,7 @@ namespace Stardust
if (span != null && !model.TraceId.IsNullOrEmpty()) span.TraceId = model.TraceId;
try
{
XTrace.WriteLine("Got Command: {0}", model.ToJson());
WriteLog("Got Command: {0}", model.ToJson());
if (model.Expire.Year < 2000 || model.Expire > DateTime.Now)
{
await OnReceiveCommand(model);
@ -339,7 +343,7 @@ namespace Stardust
{
if (_publishServices.TryAdd(service.ServiceName, service))
{
XTrace.WriteLine("注册服务 {0}", service.ToJson());
WriteLog("注册服务 {0}", service.ToJson());
StartTimer();
}
@ -379,7 +383,7 @@ namespace Stardust
service.Tag = tag;
var rs = await RegisterAsync(service);
XTrace.WriteLine("注册完成 {0}", rs.ToJson());
WriteLog("注册完成 {0}", rs.ToJson());
return rs;
}
@ -408,7 +412,7 @@ namespace Stardust
if (!_publishServices.TryGetValue(serviceName, out var service)) return false;
if (service == null) return false;
XTrace.WriteLine("取消注册 {0}", service.ToJson());
WriteLog("取消注册 {0}", service.ToJson());
UnregisterAsync(service).Wait();
return true;
@ -437,7 +441,7 @@ namespace Stardust
if (_consumeServices.TryAdd(serviceName, service))
{
XTrace.WriteLine("消费服务 {0}", service.ToJson());
WriteLog("消费服务 {0}", service.ToJson());
StartTimer();

View File

@ -43,11 +43,11 @@ namespace Stardust
_client = new ApiClient("udp://127.0.0.1:5500")
{
Timeout = 3_000,
Log = XTrace.Log,
Log = Log,
};
var set = StarSetting.Current;
if (set.Debug) _client.EncoderLog = XTrace.Log;
if (set.Debug) _client.EncoderLog = Log;
}
/// <summary>获取信息</summary>
@ -133,12 +133,12 @@ namespace Stardust
if (!info.FileName.IsNullOrEmpty()) info.FileName = info.FileName.TrimEnd(" (deleted)");
if (target.IsNullOrEmpty()) target = Path.GetDirectoryName(info.FileName);
XTrace.WriteLine("StarAgent在用版本 v{0},低于目标版本 v{1}", info.Version, version);
WriteLog("StarAgent在用版本 v{0},低于目标版本 v{1}", info.Version, version);
}
}
catch (Exception ex)
{
XTrace.WriteLine("没有探测到StarAgent{0}", ex.GetTrue().Message);
WriteLog("没有探测到StarAgent{0}", ex.GetTrue().Message);
}
if (target.IsNullOrEmpty())
@ -156,7 +156,7 @@ namespace Stardust
target = Path.GetDirectoryName(p.MainWindowTitle);
}
XTrace.WriteLine("发现进程StarAgentProcessId={0}target={1}", p.Id, target);
WriteLog("发现进程StarAgentProcessId={0}target={1}", p.Id, target);
}
}
@ -166,7 +166,7 @@ namespace Stardust
target = target.GetFullPath();
target.EnsureDirectory(false);
XTrace.WriteLine("目标:{0}", target);
WriteLog("目标:{0}", target);
var ug = new Upgrade
{
@ -176,7 +176,7 @@ namespace Stardust
Log = XTrace.Log,
};
XTrace.WriteLine("下载:{0}", url);
WriteLog("下载:{0}", url);
var client = new HttpClient();
client.DownloadFileAsync(url, ug.SourceFile).Wait();
@ -223,20 +223,20 @@ namespace Stardust
return true;
}
private static Boolean RunAgentOnWindows(String fileName, String target, Boolean inService)
private Boolean RunAgentOnWindows(String fileName, String target, Boolean inService)
{
if (!fileName.IsNullOrEmpty() && Path.GetExtension(fileName) == ".dll") return false;
if (fileName.IsNullOrEmpty()) fileName = target.CombinePath("StarAgent.exe").GetFullPath();
if (!File.Exists(fileName)) return false;
XTrace.WriteLine("RunAgentOnWindows fileName={0}, inService={1}", fileName, inService);
WriteLog("RunAgentOnWindows fileName={0}, inService={1}", fileName, inService);
if (inService)
{
Process.Start(fileName, "-stop");
Process.Start(fileName, "-start");
XTrace.WriteLine("启动服务成功");
WriteLog("启动服务成功");
}
else
{
@ -247,19 +247,19 @@ namespace Stardust
};
var p = Process.Start(si);
XTrace.WriteLine("启动进程成功 pid={0}", p.Id);
WriteLog("启动进程成功 pid={0}", p.Id);
}
return true;
}
private static Boolean RunAgentOnLinux(String fileName, String target, Boolean inService)
private Boolean RunAgentOnLinux(String fileName, String target, Boolean inService)
{
if (!fileName.IsNullOrEmpty() && Path.GetExtension(fileName) == ".dll") return false;
if (fileName.IsNullOrEmpty()) fileName = target.CombinePath("StarAgent").GetFullPath();
if (!File.Exists(fileName)) return false;
XTrace.WriteLine("RunAgentOnLinux fileName={0}, inService={1}", fileName, inService);
WriteLog("RunAgentOnLinux fileName={0}, inService={1}", fileName, inService);
// 在Linux中设置执行权限
Process.Start("chmod", $"+x {fileName}");
@ -269,7 +269,7 @@ namespace Stardust
Process.Start(fileName, "-stop");
Process.Start(fileName, "-start");
XTrace.WriteLine("启动服务成功");
WriteLog("启动服务成功");
}
else
{
@ -280,25 +280,25 @@ namespace Stardust
};
var p = Process.Start(si);
XTrace.WriteLine("启动进程成功 pid={0}", p.Id);
WriteLog("启动进程成功 pid={0}", p.Id);
}
return true;
}
private static Boolean RunAgentOnDotnet(String fileName, String target, Boolean inService)
private Boolean RunAgentOnDotnet(String fileName, String target, Boolean inService)
{
if (fileName.IsNullOrEmpty()) fileName = target.CombinePath("StarAgent.dll").GetFullPath();
if (!File.Exists(fileName)) return false;
XTrace.WriteLine("RunAgentOnDotnet fileName={0}, inService={1}", fileName, inService);
WriteLog("RunAgentOnDotnet fileName={0}, inService={1}", fileName, inService);
if (inService)
{
Process.Start("dotnet", $"{fileName} -stop");
Process.Start("dotnet", $"{fileName} -start");
XTrace.WriteLine("启动服务成功");
WriteLog("启动服务成功");
}
else
{
@ -309,7 +309,7 @@ namespace Stardust
};
var p = Process.Start(si);
XTrace.WriteLine("启动进程成功 pid={0}", p.Id);
WriteLog("启动进程成功 pid={0}", p.Id);
}
return true;
@ -377,5 +377,15 @@ namespace Stardust
}
}
#endregion
#region
/// <summary>日志</summary>
public ILog Log { get; set; }
/// <summary>写日志</summary>
/// <param name="format"></param>
/// <param name="args"></param>
public void WriteLog(String format, params Object[] args) => Log?.Info(format, args);
#endregion
}
}

View File

@ -264,7 +264,7 @@ namespace Stardust.Monitors
if (Instance is StarTracer tracer && tracer.Client is ApiHttpClient) return tracer;
tracer = new StarTracer(server) { Log = XTrace.Log };
tracer = new StarTracer(server);
tracer.AttachGlobal();
return tracer;

View File

@ -191,11 +191,13 @@ namespace Stardust
AppName = AppName,
ClientId = ClientId,
NodeCode = Local?.Info?.Code,
Filter = _tokenFilter
Filter = _tokenFilter,
Log = Log,
};
var set = StarSetting.Current;
if (set.Debug) client.Log = XTrace.Log;
//var set = StarSetting.Current;
//if (set.Debug) client.Log = XTrace.Log;
_client = client;

View File

@ -9,9 +9,9 @@ namespace Stardust
public class StarSetting : Config<StarSetting>
{
#region
/// <summary>调试开关。默认true</summary>
[Description("调试开关。默认true")]
public Boolean Debug { get; set; } = true;
/// <summary>调试开关。默认false</summary>
[Description("调试开关。默认false")]
public Boolean Debug { get; set; }
/// <summary>服务端地址。如http://star.newlifex.com:6600默认为空</summary>
[Description("服务端地址。如http://star.newlifex.com:6600默认为空")]