| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;using XdCxRhDW.Dto;namespace X2LeoTaskServer54{    public class LogInfo    {        public LogInfo()        {            this.LogTime = DateTime.Now;            this.LogType = EnumLogType.Info;        }        [Display(Name = "日志类型")]        public EnumLogType LogType { get; set; }        [Display(Name = "时间")]        public DateTime LogTime { get; private set; }        [Display(Name = "内容")]        public string Msg { get; set; }    }    public enum EnumLogType    {        [Display(Name = "消息")]        Info,        [Display(Name = "警告")]        Warning,        [Display(Name = "错误")]        Error    }    public static class LogHelper    {        public static string BaseUrl;        public static Action<LogInfo> Logger;        public static async Task Info(string msg)        {            var pro = Process.GetCurrentProcess();            try            {                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()                {                    LogTime = DateTime.Now,                    LogType = EnumLogTypeDto.Info,                    Module = pro.ProcessName,                    Msg = msg                }, 5);            }            catch            {            }            Serilog.Log.Information(msg);            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });        }        public static async Task Warning(string msg, Exception ex = null)        {            var pro = Process.GetCurrentProcess();            try            {                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()                {                    LogTime = DateTime.Now,                    LogType = EnumLogTypeDto.Warning,                    Module = pro.ProcessName,                    Msg = msg                }, 5);            }            catch            {            }            Serilog.Log.Warning(ex, msg);            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });        }        public static async Task Error(string msg, Exception ex = null)        {            if (ex != null && ex.GetType() == typeof(AggregateException))            {                var iex = (ex as AggregateException).InnerExceptions.FirstOrDefault();                if (iex != null)                    ex = iex;            }            var pro = Process.GetCurrentProcess();            try            {                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()                {                    LogTime = DateTime.Now,                    LogType = EnumLogTypeDto.Error,                    Module = pro.ProcessName,                    Msg = msg                }, 5);            }            catch            {            }            Serilog.Log.Error(ex, msg);            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });        }    }}
 |