瀏覽代碼

添加日志

devin.zhu@doverfs.com 8 月之前
父節點
當前提交
42f1588b67

+ 1 - 0
Ai.AgentServer/Ai.AgentServer.csproj

@@ -10,6 +10,7 @@
     <PackageReference Include="AutoMapper" Version="13.0.1" />
     <PackageReference Include="MQTTnet" Version="4.3.6.1152" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
+    <PackageReference Include="NLog.Web.AspNetCore" Version="5.3.13" />
     <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
   </ItemGroup>
 

+ 3 - 2
Ai.AgentServer/Controllers/FccController.cs

@@ -16,7 +16,7 @@ namespace Ai.AgentServer.Controllers
             "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
         };
 
-        private readonly ILogger<WeatherForecastController> _logger;
+        private readonly ILogger<FCCController> _logger;
 
         private readonly IHttpServer _server;
 
@@ -24,7 +24,7 @@ namespace Ai.AgentServer.Controllers
 
         private readonly MqttClientConfig mqttClientConfig;
 
-        public FCCController(ILogger<WeatherForecastController> logger, IHttpServer httpServer, IMqttServer mqttServer,IConfiguration configuration)
+        public FCCController(ILogger<FCCController> logger, IHttpServer httpServer, IMqttServer mqttServer,IConfiguration configuration)
         {
             _logger = logger;
             _server = httpServer;
@@ -43,6 +43,7 @@ namespace Ai.AgentServer.Controllers
             {
                 return new FuelReponse(5001, "Type不能为空", body);
             }
+            _logger.LogInformation($"油机命令传输{SendCommon}:{JsonConvert.SerializeObject(body)}");
             //讯飞调用
             var reponse=await _server.SendCommon(body);
 

+ 3 - 0
Ai.AgentServer/Program.cs

@@ -1,6 +1,7 @@
 using Ai.AgentServer;
 using Ai.AgentServer.Server;
 using Ai.AgentServer.Server.Mqtt_Ext;
+using NLog.Web;
 
 var builder = WebApplication.CreateBuilder(args);
 
@@ -13,6 +14,8 @@ builder.Services.AddSwaggerGen();
 
 var config= builder.Configuration.GetSection("MqttSettings").Get<MqttClientConfig>();
 builder.Services.AddHttpClient();
+builder.Logging.ClearProviders();
+builder.Host.UseNLog();
 //Ìí¼ÓMQTTÅäÖÃ
 //builder.Services.AddMqttClientManager();
 //new MqttClientManager(builder.Configuration);

+ 19 - 4
Ai.AgentServer/Server/HttpServer.cs

@@ -7,9 +7,13 @@ namespace Ai.AgentServer.Server
     public class HttpServer: IHttpServer
     {
         public IHttpClientFactory _httpClientFactory;
-        public HttpServer(IHttpClientFactory httpClientFactory)
+        public ILogger _logger { get; set; }
+        public IConfiguration configuration1 { get; set; }
+        public HttpServer(IHttpClientFactory httpClientFactory,ILogger<HttpServer> logger,IConfiguration configuration)
         {
             _httpClientFactory=httpClientFactory;
+            _logger=logger;
+            configuration1 = configuration;
         }
 
 
@@ -22,15 +26,24 @@ namespace Ai.AgentServer.Server
         {
             if (request == null||string.IsNullOrWhiteSpace(request.Type)) return new FuelReponse(5001, request);
             var client = _httpClientFactory.CreateClient("FuelClient");
+            var xunfeiUrl = "http://211.91.71.15:8899";
             //配置文件读取
-            client.BaseAddress =new Uri("http://211.91.71.15:8899");
-            var requesStr = new StringContent(JsonConvert.SerializeObject(request.BuildDto()), Encoding.UTF8, "application/json");
+            if (!string.IsNullOrWhiteSpace(configuration1.GetSection("XunFei").Value))
+            {
+                xunfeiUrl = configuration1.GetSection("XunFei").Value;
+            }
+            
+            client.BaseAddress =new Uri(xunfeiUrl);
+            var requestJson = JsonConvert.SerializeObject(request.BuildDto());
+            _logger.LogInformation($"讯飞request:{DateTime.Now}-{requestJson}");
+            var requesStr = new StringContent(requestJson, Encoding.UTF8, "application/json");
             try
             {
                 var response = await client.PostAsync("/app-control-center/app/manualDrive", requesStr);
+                _logger.LogInformation($"讯飞reponse:{DateTime.Now}-{response.IsSuccessStatusCode}");
                 if (response != null && response.IsSuccessStatusCode)
                 {
-                    Console.WriteLine("Success");
+                    Console.WriteLine("xunfei Success");
                     var fuelreponse = JsonConvert.DeserializeObject<FuelReponse>(await response.Content.ReadAsStringAsync());
                     return fuelreponse.SetID(request);
                 }
@@ -39,6 +52,8 @@ namespace Ai.AgentServer.Server
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
+                _logger.LogError($"讯飞reponse:{DateTime.Now}-{ex.Message} \r\n {requestJson}");
+
                 return new FuelReponse(5001, request);
             }
             return new FuelReponse(5000, request);

+ 1 - 1
Ai.AgentServer/appsettings.json

@@ -2,7 +2,7 @@
   "Logging": {
     "LogLevel": {
       "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
+      "Microsoft.AspNetCore": "Information"
     }
   },
   "AllowedHosts": "*",

+ 28 - 0
Ai.AgentServer/nlog.config

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+	<targets>
+		<!--此部分中的所有目标将自动异步-->
+		<target name="asyncFile" xsi:type="AsyncWrapper">
+			<!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
+			<target name="log_file" xsi:type="File"
+					fileName="${basedir}/ProjectLogs/${shortdate}/${logger}-${level}-${shortdate}.txt"
+					layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
+					archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
+					archiveAboveSize="102400"
+					archiveNumbering="Sequence"
+					concurrentWrites="true"
+					keepFileOpen="false" />
+		</target>
+		<!--使用可自定义的着色将日志消息写入控制台-->
+		<target name="colorConsole" xsi:type="ColoredConsole" layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}" />
+	</targets>
+
+	<!--规则配置,final - 最终规则匹配后不处理任何规则-->
+	<rules>
+		<logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
+		<logger name="*" minlevel="Info" writeTo="asyncFile" />
+		<logger name="*" minlevel="Warn" writeTo="colorConsole" />
+	</rules>
+</nlog>