qinchulong
2025-05-27 c020f31a67fc5aa5644511bddff075f7ecc85234
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,158 @@

using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.DB;
using WIDESEA_Core.Helper;
using WIDESEA_Core.HttpContextUser;
using WIDESEA_Core.Seed;
namespace WIDESEA_Core.LogHelper
{
    public class Logger
    {
        public static void Debug(string message)
        {
        }
        public static void Debug(string message, Exception exception)
        {
        }
        public static void Info(string message)
        {
        }
        public static void Info(string message, Exception exception)
        {
        }
        public static void Warn(string message)
        {
        }
        public static void Warning(string message, Exception exception)
        {
        }
        public static void Error(string message)
        {
        }
        public static void Error(string message, Exception exception)
        {
        }
        public static void Fatal(string message)
        {
        }
        public static void Fatal(string message, Exception exception)
        {
        }
        public static void Write_Log(string groupName, string logName, string content, object data = null)
        {
            DateTime nowTime = DateTime.Now;
            string basePath = System.Environment.CurrentDirectory + "/Log/" + $"/{groupName}/{nowTime.ToString("yyyy-MM-dd")}";
            //如果日志文件目录不存在,则创建
            if (!Directory.Exists(basePath))
            {
                Directory.CreateDirectory(basePath);
            }
            try
            {
                FileStream fs = new FileStream(basePath + "/" + logName + $"{nowTime.ToString("yyMMdd")}.txt", FileMode.Append);
                StreamWriter strwriter = new StreamWriter(fs);
                try
                {
                    strwriter.WriteLine(nowTime.ToString() + "." + nowTime.Millisecond);
                    strwriter.WriteLine(content);
                    if (data != null)
                    {
                        strwriter.WriteLine(JsonConvert.SerializeObject(data));
                    }
                    strwriter.WriteLine("-------------------------------");
                    strwriter.WriteLine();
                    strwriter.Flush();
                }
                catch { }
                finally
                {
                    strwriter.Close();
                    fs.Close();
                }
            }
            catch { }
        }
        public static void WriteApiLog2DB(HttpContext context, string requestParameter, DateTime beginDate, string responseParameter, DateTime endDate, LoggerStatus loggerStatus)
        {
            try
            {
                if (context.Request.Method == "OPTIONS") return;
                if (context == null)
                {
                    Console.WriteLine($"未获取到httpcontext信息,reqParam:{requestParameter},respParam:{responseParameter},success:{loggerStatus}");
                    return;
                }
                Dictionary<string, object> dic = new Dictionary<string, object>
                {
                    {"BeginDate",beginDate },
                    {"ElapsedTime",(endDate - beginDate).TotalMilliseconds.DoubleToInt() },
                    {"EndDate",endDate },
                    {"RequestParam",requestParameter },
                    {"ResponseParam",responseParameter },
                    {"Success",1 },
                    {"Url",context.Request.Path.Value??"" },
                    {"UserIP",context.GetUserIp() },
                    {"UserName","App.User?.Name" },
                    {"User_Id","0" }
                    //{"BeginDate",beginDate },
                    //{"ElapsedTime",(endDate - beginDate).TotalMilliseconds.ObjToInt() },
                    //{"EndDate",endDate },
                    //{"RequestParam",requestParameter },
                    //{"ResponseParam",responseParameter },
                    //{"Success",1 },
                    //{"Url",context.Request.Path.Value??"" },
                    //{"UserIP",context.GetUserIp() },
                    //{"UserName","App.User?.Name" },
                    //{"User_Id","App.User?.ID" }
                };
                SqlSugarClient sqlSugarClient = DBContext.GetCustomDB(DBContext.GetConnectionConfig());
                sqlSugarClient.Insertable(dic).AS("Sys_Log").ExecuteCommand();
            }
            catch (Exception ex)
            {
            }
        }
    }
    public enum LoggerStatus
    {
        Success = 1,
        Error = 2,
        Info = 3
    }
}