C# NLog文件不是在ASP.Net核心Web MVC中生成的
我是一名新开发人员,正在尝试创建一个解决方案,该解决方案在VisualStudio2019中有多个使用C#语言的项目。我需要创建一个NLog.config文件,供所有其他项目使用。因此,我创建了一个包含Nlog.Config文件的基础架构层项目,并在基础架构层项目中进行所有配置 在Nlog.Config文件中我写道C# NLog文件不是在ASP.Net核心Web MVC中生成的,c#,asp.net-core,nlog,C#,Asp.net Core,Nlog,我是一名新开发人员,正在尝试创建一个解决方案,该解决方案在VisualStudio2019中有多个使用C#语言的项目。我需要创建一个NLog.config文件,供所有其他项目使用。因此,我创建了一个包含Nlog.Config文件的基础架构层项目,并在基础架构层项目中进行所有配置 在Nlog.Config文件中我写道 <targets> <target xsi:type="File" name="LogFile" fileName=
<targets>
<target xsi:type="File" name="LogFile" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="LogRules" minlevel="Debug" writeTo="LogFile" />
</rules>
我用代码创建了另一个名为EmpVO的类
public class EmpVO : ApplicationBase
{
public EmpVO() : base(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
{
Log.Info("Instance created");
}
}
我创建了另一个名为presentation layer的项目,它是一个空的web ASP.net Core 3.0,带有start.cs文件
我写
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
EmpVO emp = new EmpVO();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
}
解决方案工作正常,没有错误,并且构建时没有错误。但无法生成初始NLog文件
因此,我应该如何使其生成NLog并拥有一个NLog文件供所有其他项目使用。在
中的name
属性是一个名称过滤器。因此,目前您仅将日志从LogRules logger路由到目标
否则以name=“*”
开头:
如果不清楚记录器的名称,也可以使用${logger}
另请参见
中的名称属性是名称过滤器。因此,目前您仅将日志从LogRules logger路由到目标
否则以name=“*”
开头:
如果不清楚记录器的名称,也可以使用${logger}
另请参见当您可以将NLog添加到依赖项注入容器中并完全忘记它时,您为什么要进行所有痛苦的手动工作?我需要为一个解决方案中的多个项目提供一个nlog,它不会完全改变我提到的任何东西。我认为在这种情况下(根据当前信息),使用nlog.Web.AspNetCore(参见Camilo的链接教程)确实更好。但是,我认为,在这里了解为什么不创建日志文件也很重要,请参见我的答案。当您可以将NLog添加到依赖项注入容器中并完全忘记它时,您为什么要执行所有痛苦的手动工作?我需要为一个解决方案中的多个项目提供一个nlog,它不会完全改变我提到的任何东西。我认为在这种情况下(根据当前信息),使用nlog.Web.AspNetCore(参见Camilo的链接教程)确实更好。但是,我认为在这里了解为什么不创建日志文件也很重要,请参阅我的答案。
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
EmpVO emp = new EmpVO();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
}
<logger name="*" minlevel="Debug" writeTo="LogFile" />