我的Programm.cs
:
var logger = LogManager.Setup()
.RegisterNLogWeb()
.LoadConfigurationFromFile("nlog.config")
.GetCurrentClassLogger();
try
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers(options => { options.Filters.Add<LogResponseFilterAttribute>();
});
builder.Services.AddScoped<LogResponseFilterAttribute>();
builder.Logging.ClearProviders();
builder.Logging.SetMinimumLevel(LogLevel.Information);
builder.Host.UseNLog();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
}
catch (Exception e)
{
logger.Error(e, "Stopped program because of exception");
throw;
}
finally
{
LogManager.Shutdown();
}
我的nlog.config
分:
<?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"
autoReload="true"
internalLogLevel="Error"
throwExceptions="false"
internalLogFile="c:\logs\internal-log.txt">
<variable name="iis_sitename" value="${gdc:item=iis_sitename}"/>
<variable name="logDirectory" value="c:/logs/${iis_sitename}"/>
<variable name="logSourceName" value="dpc"/>
<targets async="true">
<target xsi:type="File"
name="jsonFile"
fileName="${logDirectory}/${logSourceName}-${lowercase:${level}}.jsonl"
archiveFileName="${logDirectory}/archives/${logSourceName}-${lowercase:${level}}_${date:format=yyyy-MM-dd}.jsonl"
archiveAboveSize="1000240"
archiveNumbering="Sequence"
archiveEvery="Day"
concurrentWrites="true"
keepFileOpen="true"
maxArchiveFiles="1"
encoding="UTF-8">
<layout xsi:type="JsonLayout"
includeAllProperties="true"
maxRecursionLimit="2"
suppressSpaces="true">
<attribute name="timestamp" layout="${longdate}"/>
<attribute name="message" layout="${message}"/>
</layout>
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="jsonFile" />
</rules>
</nlog>
在一次行动中,我怎么称呼它:
[HttpGet("products")]
public Task<object?> Get(CancellationToken cancellationToken, [FromQuery] Filter filter)
{
_logger.LogInformation("Hello world!");
... other stuff
}
我得到的是:
我很困惑!这是什么?我能不能要回我的"Hello world"?所有这些聪明的东西看起来很酷,可能会用于新一季的"机器人先生",但我没有 需要它!我只需要我的"Hello world"!