Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NLog文件不是在ASP.Net核心Web MVC中生成的_C#_Asp.net Core_Nlog - Fatal编程技术网

C# NLog文件不是在ASP.Net核心Web MVC中生成的

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=

我是一名新开发人员,正在尝试创建一个解决方案,该解决方案在VisualStudio2019中有多个使用C#语言的项目。我需要创建一个NLog.config文件,供所有其他项目使用。因此,我创建了一个包含Nlog.Config文件的基础架构层项目,并在基础架构层项目中进行所有配置

Nlog.Config文件中我写道

<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" />