【问题标题】:Capture controller name and method name using NLog in dotnet core在 dotnet core 中使用 NLog 捕获控制器名称和方法名称
【发布时间】:2021-09-28 17:33:58
【问题描述】:

我正在尝试使用 NLog 库在 dotnet 核心应用程序中捕获控制器名称和方法名称。下面的一组代码在配置中用于捕获它们。我能够获取控制器和操作名称,但没有得到预期的结果。

Nlog 配置文件:

 <targets>   
  <target xsi:type="File" archiveAboveSize="10000000" archiveNumbering="DateAndSequence" name="eventLog" fileName="D:\MiningApp\Logs\MiningApp_Log_${shortdate}.log"
    layout="${longdate} | ${uppercase:${level}} | ${callsite} | ${logger} | ${message}" />
 </targets>

当前结果:

2021-07-21 15:34:17.1299 | INFO | MiningApp.Controllers.MasterController.GetUsers | MiningApp.Controllers.MasterController | Logging started for department
2021-07-21 15:34:17.2165 | INFO | MiningApp.Controllers.MasterController+<GetUsers>d__42.MoveNext | MiningApp.Controllers.MasterController | Logging ended for department

预期结果:

2021-07-21 15:34:17.1299 | INFO | ControllerName: MiningApp.Controllers.MasterController | MethodName : MiningApp.Controllers.MasterController.GetUsers | Logging started for department
2021-07-21 15:34:17.1376 | INFO | ControllerName: MiningApp.Controllers.MasterController | MethodName : MiningApp.Controllers.MasterController.GetUsers | Logging ended for department

我还需要将文件限制设置为 10MB,当文件达到大小时,它应该创建一个新文件。文件名应该类似于Ex: MiningApp_Log_21.07.2021_01, MiningApp_Log_21.07.2021_02。非常感谢任何意见或建议。

【问题讨论】:

    标签: c# asp.net-core .net-core asp.net-core-mvc nlog


    【解决方案1】:

    对于您的预期结果,这应该有效:

    <targets>   
    <target xsi:type="File" archiveAboveSize="10000000" archiveNumbering="DateAndSequence" name="eventLog" fileName="D:\MiningApp\Logs\MiningApp_Log_${shortdate}.log"
      layout="${longdate} | ${uppercase:${level}} | ControllerName: ${callsite:methodName=false} | MethodName: ${callsite:includeSourcePath=false} | ${message}" />
    </targets>
    

    通过阅读文档配置:https://nlog-project.org/config/?tab=layout-renderers

    【讨论】:

    • 我仍然遇到两个问题 1. 如您在帖子中所见,此值已附加到日志 +&lt;GetUsers&gt;d__42 中。此外,文件编号也不是按顺序创建的。它是这样创建的MiningApp_Log_2021-07-21, MiningApp_Log_2021-07-21.20210721.0, MiningApp_Log_2021-07-21.20210721.1。但我需要像MiningApp_Log_2021-07-21_01, MiningApp_Log_2021-07-21_02 这样的东西。
    • 对于您的文件编号,我没有适合您的解决方案,对于正在附加的值,请尝试修改此处的配置:github.com/NLog/NLog/wiki/Callsite-Layout-Renderer我希望能帮到您
    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多