完善日志内容与日志记录

This commit is contained in:
老九 2021-09-10 15:35:46 +08:00
parent de35b35d7b
commit f7e71f598d
3 changed files with 38 additions and 6 deletions

View File

@ -5,6 +5,7 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace FastGithub.ReverseProxy
@ -55,19 +56,28 @@ namespace FastGithub.ReverseProxy
}
var exception = context.GetForwarderErrorFeature()?.Exception;
if (IsError(exception) == false)
if (exception == null)
{
this.logger.LogInformation(message);
}
else
else if (IsError(exception))
{
this.logger.LogError($"{message}{Environment.NewLine}{exception}");
}
else
{
this.logger.LogWarning($"{message}{Environment.NewLine}{GetMessage(exception)}");
}
}
private static bool IsError(Exception? exception)
/// <summary>
/// 是否为错误
/// </summary>
/// <param name="exception"></param>
/// <returns></returns>
private static bool IsError(Exception exception)
{
if (exception == null || exception is OperationCanceledException)
if (exception is OperationCanceledException)
{
return false;
}
@ -79,5 +89,24 @@ namespace FastGithub.ReverseProxy
return true;
}
/// <summary>
/// 获取异常信息
/// </summary>
/// <param name="exception"></param>
/// <returns></returns>
private static string GetMessage(Exception exception)
{
var ex = exception;
var builder = new StringBuilder();
while (ex != null)
{
var type = ex.GetType();
builder.Append(type.Namespace).Append(".").Append(type.Name).Append(": ").AppendLine(ex.Message);
ex = ex.InnerException;
}
return builder.ToString();
}
}
}

View File

@ -22,7 +22,8 @@
<ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.2.0" />
</ItemGroup>

View File

@ -58,10 +58,12 @@ namespace FastGithub
});
webBuilder.UseSerilog((hosting, logger) =>
{
var template = "{Timestamp:O} [{Level:u3}]{NewLine}{SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}";
logger
.ReadFrom.Configuration(hosting.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: "{Timestamp:O} [{Level:u3}]{NewLine}{SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}");
.WriteTo.Console(outputTemplate: template)
.WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day, outputTemplate: template);
});
});
}