From bcc0556fd0eb975b705865fa2b5b9a16941ae657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E4=B9=9D?= <366193849@qq.com> Date: Sun, 14 Nov 2021 22:03:17 +0800 Subject: [PATCH] log --- FastGithub/ServiceExtensions.cs | 55 +++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/FastGithub/ServiceExtensions.cs b/FastGithub/ServiceExtensions.cs index be16c6a..917bd80 100644 --- a/FastGithub/ServiceExtensions.cs +++ b/FastGithub/ServiceExtensions.cs @@ -56,26 +56,7 @@ namespace FastGithub public static void Run(this IHost host, bool singleton = true) { var logger = host.Services.GetRequiredService().CreateLogger(nameof(FastGithub)); - if (TryGetCommand(out var cmd) && (OperatingSystem.IsWindows() || OperatingSystem.IsLinux())) - { - try - { - if (OperatingSystem.IsWindows()) - { - UseCommandAtWindows(cmd); - } - else if (OperatingSystem.IsLinux()) - { - UseCommandAtLinux(cmd); - } - logger.LogInformation("服务操作成功"); - } - catch (Exception ex) - { - logger.LogError(ex.Message); - } - } - else + if (UseCommand(logger) == false) { using var mutex = new Mutex(true, "Global\\FastGithub", out var firstInstance); if (singleton == false || firstInstance) @@ -90,14 +71,40 @@ namespace FastGithub } /// - /// 获取控制指令 + /// 使用命令 /// - /// + /// /// - private static bool TryGetCommand(out Command cmd) + private static bool UseCommand(ILogger logger) { var args = Environment.GetCommandLineArgs(); - return Enum.TryParse(args.Skip(1).FirstOrDefault(), true, out cmd); + if (Enum.TryParse(args.Skip(1).FirstOrDefault(), true, out var cmd) == false) + { + return false; + } + + var action = cmd == Command.Start ? "启动" : "停止"; + try + { + if (OperatingSystem.IsWindows()) + { + UseCommandAtWindows(cmd); + } + else if (OperatingSystem.IsLinux()) + { + UseCommandAtLinux(cmd); + } + else + { + return false; + } + logger.LogInformation($"服务{action}成功"); + } + catch (Exception ex) + { + logger.LogError(ex.Message, $"服务{action}异常"); + } + return true; } ///