<?xml version="1.0" encoding="utf-8" ?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"throwExceptions="false"internalLogLevel="Off"internalLogFile="E:\temp\nlog-internal.log"><targets>
//保存在E:\学习文档\C#\Nlog\WebApplication1\WebApplication1\bin\Debug\net6.0\logs
<target xsi:type="File" name="f" fileName="logs/${var:cuspath}nlog-all-${shortdate}.log"
//layout是格式
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>>
<rules><!--Skip Microsoft logs and so log only own logs--><!--以Microsoft打头的日志将进入此路由,由于此路由没有writeTo属性,所有会被忽略--><!--且此路由设置了final,所以此路由被匹配到了不会再继续往下匹配。未匹配到的会继续匹配下一个路由--><loggername="Microsoft.*"minlevel="Trace"final="true"/><loggername="*"minlevel="Debug"writeTo="f"/></rules></nlog>
在progarm.cs中配置
using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel;
using Microsoft.Extensions.Hosting;
using NLog.Extensions.Logging;
using NLog.Web;
using WebApplication1.Model;
namespace WebApplication1
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
Configure(builder);
var app = builder.Build();
Configution(app);
}
public static void Configure(WebApplicationBuilder builder)
{
// Add services to the container.
builder.Services.AddControllersWithViews();
//Configuration
builder.Services.AddMvcCore().AddMvcOptions(option =>
{
option.EnableEndpointRouting = false;
});
//依赖注入
builder.Services.AddScoped<UserResitory, UserResitory>();
builder.WebHost.ConfigureLogging((hostingcontent, logger) =>
{
logger.AddConfiguration(hostingcontent.Configuration.GetSection("Logger"));
logger.AddConsole();
logger.AddDebug();
logger.AddNLog();
});
}
public static void Configution(WebApplication app)
{
//判断用户
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}");
//app.MapGet("/", () => "Hello World!");
app.Run();
}
}
}